リソース・プリンシパルの管理

「クラスタ詳細」ページからビッグ・データ・サービス・クラスタ・リソース・プリンシパルを管理できます。

ノート

クラスタごとに許可されるアクティブなリソース・プリンシパル構成は1つのみです。

ビッグ・データ・サービス3.0.28およびODHバージョン1.1.13/2.0.9では、リソース・プリンシパルがサポートされています。Big Data Service 3.0.27以上(直接クラスタ作成またはアップグレード)のアップグレード・パスに従った古いクラスタは、リソース・プリンシパルをサポートするためのアップグレードの対象となります。リソース・プリンシパルを使用するには、ビッグ・データ・サービスとODHの両方を、前にリストしたバージョンにアップグレードする必要があります。リソース・プリンシパル・サポートの導入により、ビッグ・データ・サービスはリソース・プリンシパル認証を使用して異なるOCIサービスに接続でき、ポリシーは複数レベル(リソース・レベル、コンパートメント・レベルなど)に対して定義できます。

ビッグ・データ・サービス・クラスタ・リソース・プリンシパルを管理するには、次を参照してください:

ノート

次の状況では、新しいリソース・プリンシパル・セッション・トークンが発行され、クラスタ内のすべてのノードに配布されます:
  1. ノードの置換
  2. ノードの追加

前提条件

  • ビッグ・データ・サービス3.0.28以上
  • ODH 1のODH 1.1.13以降
  • ODH 2のODH 2.0.9以降
  • update bds権限

    ビッグ・データ・サービス・ポリシーの詳細は、ビッグ・データ・サービス・ポリシーを参照してください

サンプル・ポリシー

特定のグループに対して次のポリシーを作成することもできます。

クラスタのテナンシ内のオブジェクトおよびバケットに対するビッグ・データ・サービスへの読取り専用アクセスを許可します

allow any-user to read buckets in tenancy where ALL{request.principal.id='<BDS Cluster OCID>'}
allow any-user to read objects in tenancy where ALL{request.principal.id='<BDS Cluster OCID>'}

ビッグ・データ・サービス・クラスタのテナンシ内の特定のバケットへの読取り専用アクセスを許可します

allow any-user to read buckets in tenancy where ALL{request.principal.id='<BDS Cluster OCID>',target.bucket.name='<bucket-name>'}
allow any-user to read objects in tenancy where ALL{request.principal.id='<BDS Cluster OCID>',target.bucket.name='<bucket-name>'}

特定のコンパートメントから発生したすべてのビッグ・データ・サービス・クラスタのテナンシ内のオブジェクトおよびバケットへの読取り専用アクセスを許可します

allow any-user to read buckets in tenancy where ALL{request.resource.compartment.id='<Compartment OCID of BDS Clusters>', request.principal.type='bigdataservice'}
allow any-user to read objects in tenancy where ALL{request.resource.compartment.id='<Compartment OCID of BDS Clusters>', request.principal.type='bigdataservice'}

ビッグ・データ・サービス・クラスタの異なるテナント内のオブジェクトおよびバケットへの読取り専用アクセスを許可します(たとえば、テナンシ間アクセス)

実際のビッグ・データ・サービス・クラスタが作成されたソース・テナンシに必要なポリシー。

Define tenancy <Target-Tenancy-Name> as <Target-Tenancy-OCID>
Endorse any-user to read object-family in tenancy <Target-Tenancy-Name>
Endorse any-user to read buckets in tenancy <Target-Tenancy-Name>
Endorse any-user to read objects in tenancy <Target-Tenancy-Name>

リソースがアクセスされるターゲット・テナンシに必要なポリシー。

Define tenancy <Source-BDS-Cluster-Tenancy-Name> as <Source-BDS-Cluster-Tenancy-OCID>
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read object-family in tenancy where request.principal.id='<BDS Cluster OCID>'
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read buckets in tenancy where request.principal.id='<BDS Cluster OCID>'
Admit any-user of tenancy <Source-BDS-Cluster-Tenancy-Name> to read objects in tenancy where request.principal.id='<BDS Cluster OCID>'

リソース・プリンシパル必須IAMポリシー

リソース・プリンシパル(RPST)関連メトリックをモニターするには、管理者が記述したポリシーを介して、必要なタイプのアクセス権が付与されている必要があります。ポリシーでは、モニタリング・サービスおよびモニター対象の特定のビッグ・データ・サービス・コンパートメントへのアクセスを許可する必要があります。

権限が拒否されたり、権限のないエラーが発生した場合は、次を確認します。

  • アクセス・ポリシーには、oci_monitoring権限が含まれます。
  • 正しいコンパートメントで作業しています。
リファレンス:必要な権限およびコンパートメント・アクセスの詳細は、IAMポリシーのモニタリングを参照してください。

リソース主要メトリック

リソース・プリンシパル・メトリックの詳細は、使用可能なメトリック: oci_big_data_serviceを参照してください。

RPSTメトリックのユース・ケースと複合モニタリング・シナリオ:

メトリック: ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold

目的:

ノード単位で、有効期限が近いRPSTトークン(有効期間の80%を超える)を事前に監視するために使用されます。

次の場合にこのメトリックを使用します:

  • まもなく期限切れになるトークンを識別します。
  • 中断を回避するために、実際のトークンの有効期限が切れる前にアラートをトリガーする必要があります。
  • 自動トークンまたは手動トークン再生成のバッファ時間を許可します。

サンプル問合せ:

ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[2h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqa7h57hcu6f5pvxpwl6j5u2ipl3qqdcavjlqyixtgjjiva"}.count()

メトリック: ResourcePrincipalSessionTokenStatus

目的:

RPSTトークンの有効期限が切れているか、ノード単位レベルで欠落しているなど、重要なトークンの問題を検出するために使用されます。

次の場合にこのメトリックを使用します:

  • トークンの可用性に対してリアルタイムのヘルス・チェックを実行します。
  • ノードに破損または期限切れのトークンがある場合、ただちにアクションを実行します。
  • 失敗タイプ: 1は期限切れ、2は欠落を分類します。

サンプル問合せ:

ResourcePrincipalSessionTokenStatus[30m]{resourceId = "ocid1.instance.oc1.iad.anuwcljtanx7lvqc7uvyibak2qlvjwvzz4mtb6qiusn6x4zsvpx4kpfydczq"}.count()

メトリック: ResourcePrincipalTokenRefreshedInLast30Mins

目的:

RPSTトークンが最近リフレッシュされ、クラスタ・レベルで評価されたかどうかを追跡するために使用されます。これは、ResourcePrincipalSessionTokenStatusがいずれかのノードに対して期限切れまたは欠落している場合に当てはまります。

次の場合にこのメトリックを使用します:

  • 定期的なトークン更新ジョブが正常に実行されていることを確認する必要があります。

  • トークン管理が正しく機能していることを示すクラスタレベルのハートビートが必要です。

  • このメトリックがfalseの場合は、すべてのノードにわたって失効したトークンを検出します。

サンプル問合せ:

ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqac7xojchf2vjmbeudlixrqmjvjct7oioj34otatnibfka"}.max()

プロアクティブな監視と即時修正

目標: 失効に近いトークンを検出し、欠落または失効していないことを確認します。

次のメトリックを一緒に使用します:

  • ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold
  • ResourcePrincipalSessionTokenStatus

サンプル問合せ(次の問合せの集計):

問合せ1:

 ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.grouping().count()

問合せ2:

ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()

リフレッシュ検証によるヘルス・チェック

目標: すべてのトークンが定期的にリフレッシュされ、期限切れまたは欠落しているトークンがないことを確認します。

次のメトリックを一緒に使用します:

  • ResourcePrincipalTokenRefreshedInLast30Mins
  • ResourcePrincipalSessionTokenStatus

サンプル問合せ(次の問合せの集計):

問合せ1:

ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqac7xojchf2vjmbeudlixrqmjvjct7oioj34otatnibfka"}.max()

問合せ2:

ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()

クラスタ準備状況の検証

目標: すべてのノードの準備ができていることを確認します(アクティブ、最近リフレッシュ済、今後の失効なし)。

3つのメトリックをすべて一緒に使用:

  • ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold
  • ResourcePrincipalSessionTokenStatus
  • ResourcePrincipalTokenRefreshedInLast30Mins

サンプル問合せ(次の問合せの集計):

問合せ1:

ResourcePrincipalTokenExpiryTimeExceeding80PercentThreshold[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.grouping().count()

問合せ2:

ResourcePrincipalSessionTokenStatus[12h]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.count()

問合せ3:

ResourcePrincipalTokenRefreshedInLast30Mins[30m]{clusterOcid = "ocid1.preprod-bigdataservice.oc1.iad.amaaaaaamn67ujqalm2xprcarkhihwcnih3lkinktmmjmqqrutqzkukpswiq"}.max()

サポートされる属性

ビッグ・データ・サービス・リソース・プリンシパルでは、次の属性がサポートされています。これは、ポリシー・レベルと動的グループ・レベルの両方で使用できます。動的グループ・レベルでリソース・プリンシパル属性を消費する場合は、必ずリソース・プリンシパル・アクセス・トークンを再生成してください。

  • request.principal.id: リソース・プリンシパルID。値はビッグ・データ・サービスIDと同じで、特定のリソース・レベルの分離に使用されます。
  • request.resource.compartment.id: ビッグ・データ・サービス・リソース・コンパートメントID。コンパートメント・レベルの分離に使用されます。
  • request.resource.tenancy.id: ビッグ・データ・サービス・リソース・テナンシIDで、テナンシ・レベルの分離に使用されます。
  • request.principal.type: ビッグ・データ・サービス・リソース・プリンシパル・タイプ。ビッグ・データ・サービス固有のリソース・プリンシパル値はすべて'bigdataservice'です。