クラスターコンポーネントの信頼済みプロファイルの設定

信頼されたプロファイルを使用して、 Block Storage、 File Storage、または Cloud Object Storage などのコンポーネントを含むリソースへのアクセスを制御できます。

信頼できるプロフィールについて

信頼されたプロファイルを使用することで、連携したユーザーがアカウント内の IBM Cloud リソースにアクセスするための柔軟で安全な方法を確立できます。 企業のユーザーディレクトリで定義された特定の属性を共有するすべてのフェデレーションユーザーは、共通のプロファイルにマッピングされ、 IBM Cloud のリソースへのアクセスを共有することができます。 この共通 ID によって、アクセス要件を共有する組織のメンバー達に、リソースに対する一回限りのアクセス権限を自動的に付与することが可能になります。つまり、ユーザーを 1 人ずつアカウントに追加してアクセス権限を直接付与したり、アクセス・グループを介して付与したりする必要がなくなります。

信頼できるプロフィールの利点は以下の通り:

長期間のAPIキーの必要性の排除
埋め込み API キーではなく、信頼済みプロファイルの作成時に確立した信頼関係に基づいて、リソースへのアクセスを許可します。 これにより、認証情報の漏洩や漏えいのリスクが軽減される。
集中アクセス・コントロール
アクセス権の付与、取り消し、監査のプロセスを簡素化するために、単一の信頼できるプロファイルを介してアクセス権を管理します。
スコープ付きパーミッション
特定のタスクを完了するために必要な最小限の権限でプロファイルを作成し、最小権限の原則を遵守する。

すべてのストレージ・コンポーネントの最小アクセス要件

ストレージ・コンポーネントに信頼されたプロファイルを使用するには、最小限のアクセス・ポリシーのセットが必要です。 このセクションのポリシーは、すべてのストレージコンポーネントに信頼されたプロ ファイルを設定するために必要である。

以下の構成で信頼関係を作成する。 これらの権限はVPCクラスタに必要です。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

全コンポーネントの最小パーミッション
サービス名 必要権限 説明
課金 エディター 使用量、コスト、レポートなどの課金データを閲覧、管理できます。 自動化されたコスト追跡や予算を意識したオペレーションに便利。
Kubernetes サービス 管理者 Kubernetes クラスタがストレージ・リソースと対話できるようにする。
VPCインフラサービス ライター、編集者、スナップショット・リモート・アカウント復元者 ストレージリソースのプロビジョニングと管理を可能にする。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。 リソースグループでカスタムストレージクラスを作成する場合は、リソースグループの信頼済みプロファイルにもビューアアクセスを割り当てる必要があることに注意してください。

さらに、 クラシック・インフラストラクチャー を使用する場合は、 ストレージの追加/アップグレード(ストレージレイヤー)ストレージ管理 のパーミッションを有効にする必要がある。 これらの権限を有効にするには、UIで 信頼済みプロファイルダッシュボードに移動し、関連する信頼済みプロファイルを選択します。 クラシック・インフラストラクチャー をクリックし、 売上高デバイス の下のオプションを展開し、パーミッションを見つけます。

個々のコンポーネントに対する最低限のアクセス要件

以下のコンポーネントで信頼済みプロファイルを使用するには、最低限のアクセスポリシーが必要です。

高度なクラスタ管理(ACM)

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Red Hat OpenShift
  • すべてのサービスリソースを選択します。
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

ACMに必要な最低限の権限
サービス名 必要権限 説明
Kubernetes サービス 読者、視聴者、オペレーター、編集者 ハブ・クラスタが管理対象クラスタと連携できるようにします。

クラシック・ブロック・ストレージ

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

以下の表の権限を追加する。 これらのパーミッションを有効にするには、UIを使用する必要があります。 UI の 信頼済みプロファイルダッシュボードに移動し、該当する信頼済みプロファイルを選択します。 クラシック・インフラストラクチャをクリックし、オプションを展開してパーミッションを探す。

クラシック・ブロック・ストレージの最小権限
サービス名 必要権限 説明
Devices ストレージ管理 クラシック・ブロック・ストレージのデバイスへの取り付け、取り外し、設定を可能にします。
Sales ストレージの追加/アップグレード(ストレージレイヤー) セールスAPIを通じて、Classicストレージの注文、アップグレード、変更の権限を付与します。

クラシック・ファイル・ストレージ

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

以下の表の権限を追加する。 これらのパーミッションを有効にするには、UIを使用する必要があります。 UI の 信頼済みプロファイルダッシュボードに移動し、該当する信頼済みプロファイルを選択します。 クラシック・インフラストラクチャをクリックし、オプションを展開してパーミッションを探す。

クラシック・ファイル・ストレージの最小パーミッション
サービス名 必要権限 説明
Devices ストレージ管理 クラシック・ブロック・ストレージのデバイスへの取り付け、取り外し、設定を可能にします。
Sales ストレージの追加/アップグレード(ストレージレイヤー) セールスAPIを通じて、Classicストレージの注文、アップグレード、変更の権限を付与します。

クラスター自動スケーリング機能

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

クラスタオートスケーラの最小権限
サービス名 必要権限 説明
Kubernetes サービス 管理者 Kubernetes クラスターがオートスケーラー・コンポーネントと相互作用できるようにする。

Object Storage

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

オブジェクトストレージの最小権限
サービス名 必要権限 説明
Kubernetes サービス リーダー、ビューアー Kubernetes クラスタが COS プラグインと相互作用できるようにする。
VPCインフラサービス リーダー、ビューアー APIコールを取得するためにVPCとの通信を有効にします。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。

ODF課金エージェント

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

ODF課金エージェントの最小権限
サービス名 必要権限 説明
課金 エディター 使用量、コスト、レポートなどの課金データを閲覧、管理できます。 自動化されたコスト追跡や予算を意識したオペレーションに便利。
Kubernetes サービス エディター Kubernetes クラスタがブロック・ストレージとやり取りできるようにする。
VPCインフラサービス 編集者、ライター ストレージリソースのプロビジョニングと管理を可能にする。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。

VPC ブロック・ストレージ

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

VPCブロックストレージの最小権限
サービス名 必要権限 説明
Kubernetes サービス オペレーター Kubernetes クラスタがブロック・ストレージ・リソースと対話できるようにする。
VPCインフラサービス ライター、編集者、スナップショット・リモート・アカウント復元者 ブロック・ストレージ・リソースのプロビジョニング、管理、クロススナップショット操作が可能。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。 リソースグループでカスタムストレージクラスを作成する場合は、リソースグループの信頼済みプロファイルにもビューアアクセスを割り当てる必要があることに注意してください。

VPCファイルストレージ

以下の構成で信頼関係を作成する。

  • コンピュートサービスタイプ(UIのコンピュートリソースタブにあります):
    • Kubernetes
    • Red Hat OpenShift
  • 信頼できる名前空間: kube-system.

次の表に示すアクセス許可を持つアクセスポリシーを作成する。

VPCファイルストレージの最小パーミッション
サービス名 必要権限 説明
Kubernetes サービス オペレーター Kubernetes クラスタがファイル・ストレージ・リソースと対話できるようにする。
VPCインフラサービス ライター、編集者 ファイル・ストレージ・リソースのプロビジョニングと管理を可能にする。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。 リソースグループでカスタムストレージクラスを作成する場合は、リソースグループの信頼済みプロファイルにもビューアアクセスを割り当てる必要があることに注意してください。

CLIで信頼済みプロファイルを設定する

CLIで信頼済みプロファイルを作成し、設定する手順に従ってください。

一度信頼済みプロファイルをクラスタに追加すると、そのプロファイルを削除することはできず、リソースのAPIキーの使用を再開することもできません。 信頼できるプロフィールが正しく設定されていることを確認するため、以下の手順を注意深く行ってください。

  1. IBM Cloud CLI にログインします。

    ibmcloud login --apikey API_KEY -g RESOURCE_GROUP
    
  2. コマンドを実行して、信頼できるプロファイルを作成する。 コマンドオプションの完全なリストについては、 IAM CLIのドキュメントを 参照してください。

    ibmcloud iam trusted-profile-create NAME --description "Identity for storage"
    
  3. kube‑system ネームスペースにスコープの使用ルールを追加する。 コマンドオプションの完全なリストについては、 IAM CLIのドキュメントを 参照してください。

    ibmcloud iam trusted-profile-rule-create --name NAME --type Profile-CR --cr-type ROKS_SA  --conditions claim:namespace,operator:EQUALS,value:kube-system
    
  4. VPCクラスタの場合 :信頼済みプロファイルにアクセスポリシーを作成して割り当てます。 この例では、すべてのストレージ・コンポーネントに必要最小限の権限を割り当てている。 個々のコンポーネントにのみ必要な権限のリストについては、 個々のストレージ・コンポーネントの最小 要件を参照のこと。 ポリシーを割り当てる信頼済みプロファイルの名前または ID を指定します。 コマンドオプションの完全なリストについては、 IAM CLIのドキュメントを 参照してください。 この手順は、クラシック・クラスターには適用されません。 VPCインフラストラクチャサービスのポリシーを追加します。

    ibmcloud iam trusted-profile-policy-create NAME|ID  --roles Editor,Writer --service-name is
    

    課金サービスのポリシーを追加します。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Editor --service-name billing
    

    Kubernetes サービスのポリシーを追加する。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Administrator --service-name containers-kubernetes
    

    信頼済みプロファイルが適用される関連リソースグループのポリシーを追加する。 信頼済みプロファイルを適用するリソースグループを指定します。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Operator  --resource-type "resource-group" --resource "my-resource-group"
    
  5. クラシック・クラスタの場合 :コマンドを実行して、信頼されたプロファイルに 必要最低限の権限を 追加する。 信頼済みプロファイル用に作成されるユーザー ID を指定します。

    ibmcloud oc sl user permission-edit TRUSTED_PROFILE_ID --permission NAS_MANAGE,ADD_SERVICE_STORAGE
    
  6. 信頼済みプロファイルを作成し、必要なアクセスポリシーを割り当てたら、クラスタまたはクラスタが属するリソースグループのいずれかに 信頼済みプロファイルを設定 します。 信頼済みプロファイルを設定すると、ストレージコンポーネントに適用されます。

UIで信頼できるプロフィールを設定する

UIで信頼済みプロファイルを作成し、設定する手順に従ってください。

一度信頼済みプロファイルをクラスタに追加すると、そのプロファイルを削除することはできず、リソースのAPIキーの使用を再開することもできません。 信頼できるプロフィールが正しく設定されていることを確認するため、以下の手順を注意深く行ってください。

  1. IBM Cloud アカウントにログインし、Trusted Profiles ページに移動します。

  2. トラステッド・プロファイルを作成します。

  3. Red Hat OpenShift on IBM Cloud サービスとの信頼関係を築く。

    1. Select trusted entity type セクションで、 Compute resourcesをクリックします。
    2. 信頼関係の作成 」で Red Hat OpenShift.
    3. すべてのサービスリソースを選択します。 次に、 Namespacekube-system等しい場合にアクセスを許可する条件を追加します。
      • 代わりに、あなたのアカウント存在する特定のリソースを選択することができます。
  4. 「作成」 をクリックします。

  5. VPCのみ。 信頼済みプロファイルにアクセスポリシーを追加する。

    1. 信頼済みプロファイル] ページで、作成したばかりの信頼済みプロファイルをクリックします。
    2. [ アクセス ] タブで、[ アクセス権の割り当て ] をクリックします。
    3. アクセス権の割り当て方法] セクションで、[ アクセスポリシー] をクリックします。
    4. 該当するコンポーネントの 最小要件を 満たすように、サービスとロールを追加する。 ポリシーをすべてのリソースに適用する。
  6. クラシック版のみ。 信頼済みプロファイルに権限を追加する。

    1. 信頼済みプロファイル] ページで、作成したばかりの信頼済みプロファイルをクリックします。
    2. クラシック・インフラストラクチャー 」タブに移動します。
    3. 権限のドロップダウンで、関連するコンポーネントの 最小要件を 満たすために必要な権限を選択します。

APIで信頼できるプロフィールを設定する

  1. トラステッド・プロファイルを作成します。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/profiles \
    --header 'Content-Type: application/json' \
    --data '{
        "name":"<PROFILE_NAME>",
        "account_id":"<ACCOUNT_ID>"
    }'
    
  2. kube‑system ネームスペースにスコープの使用ルールを追加する。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/profiles/<PROFILE_NAME>/rules \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "Profile-CR",
        "cr_type":"ROKS_SA",
        "conditions": [
            {
                "claim": "namespace",
                "operator": "EQUALS",
                "value": "\"kube-system\""
            }
        ]
    }'
    
  3. VPCクラスタの場合 VPCコンポーネントにアクセスポリシーをアタッチします。 これらの例では、すべてのストレージコンポーネントに必要な最小限の権限を割り当てています。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "access",
        "description": "Writer, Operator role for VPC infrastructure services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
            },
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "is"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "access",
        "description": "Editor role for billing services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "billing"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{	
        "type": "access",
        "description": "Administrator role for containers-kubernetes services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "containers-kubernetes"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{	
        "type": "access",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Operator"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "resource",
                        "value": "<RESOURCE_GROUP_ID>"
                    },
                    {
                        "name": "resourceType",
                        "value": "resource-group"
                    },
                ]
            }
        ]
    }
    
  4. クラシック・クラスタの場合 :UIを使用して、信頼済みプロファイルに権限を追加します。

    1. IBM Cloud アカウントにログインし、Trusted Profiles ページに移動します。
    2. 作成した信頼済みプロファイルをクリックします。
    3. クラシック・インフラストラクチャー 」タブに移動します。
    4. 権限のドロップダウンで、関連するコンポーネントの 最小要件を 満たすために必要な権限を選択します。

クラスタまたはリソースグループの信頼済みプロファイルの設定

クラスタに信頼済みプロファイルを設定すると、ストレージ・コンポーネントに適用されます。 信頼済みプロファイルは、個々のクラスタ、またはリソース・グループに設定できます。

一度信頼済みプロファイルをクラスタに追加すると、そのプロファイルを削除することはできず、リソースのAPIキーの使用を再開することもできません。 信頼できるプロフィールが正しく設定されていることを確認するため、以下の手順を注意深く行ってください。

  1. ストレージ・コンポーネントの最小要件を 満たす信頼できるプロファイルが作成されていることを確認する。

  2. 信頼済みプロファイルをクラスタ、またはクラスタが所属するリソースグループに割り当てます。 信頼済みプロファイルをリソースグループに割り当てると、リソースグループ内のすべてのクラスタに適用されます。

    クラスタに信頼済みプロファイルを割り当てるには

    ibmcloud oc experimental trusted-profile set --trusted-profile PROFILE --cluster CLUSTER [--output OUTPUT] [-q]
    
    --cluster CLUSTER
    信頼済みプロファイルを設定するクラスタID。 クラスタ ID を取得するには、 ibmcloud oc cluster get を実行してください。
    --trusted-profile PROFILE
    信頼できるプロファイルID。 信頼できるプロファイルIDを取得するには、 ibmcloud iam trusted-profiles を実行します。
    --output OUTPUT
    指定された形式でコマンド出力を表示します。 受け入れられる値: json
    -q
    その日のメッセージを表示せず、リマインダーも更新しません。

    信頼済みプロファイルをリソースグループに割り当てるには

    ibmcloud oc experimental trusted-profile default set --region REGION --resource-group GROUP --trusted-profile PROFILE [--output OUTPUT] [-q]
    
    --region REGION
    リソースグループが配置されている地域。 リソースグループの詳細を取得するには、 ibmcloud resource group を実行する。
    --resource-group GROUP
    信頼されたプロファイルを設定するリソースグループID。 リソースグループの一覧を表示するには、 ibmcloud resource groups を実行してください。
    --trusted-profile PROFILE
    信頼できるプロファイルID。 信頼できるプロファイルIDを取得するには、 ibmcloud iam trusted-profiles を実行します。
    --output OUTPUT
    指定された形式でコマンド出力を表示します。 使用可能な値: json.
    -q
    その日のメッセージを表示せず、リマインダーも更新しません。
  3. 信頼済みプロファイルがクラスタに追加されていることを確認します。

    ibmcloud oc experimental trusted-profile get --cluster CLUSTER
    

    出力例。

    Fetching trusted-profile for the cluster...
    OK
    Cluster a1bc2de45fgh6ijklmn7op is configured with trusted-profile Profile-a12bc34-1111-1111-1234-a123bc456
    

制限と考慮事項

信頼済みプロファイルを使用する前に、以下の制限事項と注意事項を確認してください。

信頼できるプロファイルへの不可逆的移行
クラスタまたはリソースグループレベルで信頼済みプロファイルが構成された後、APIキーの使用に戻すことはサポートされていません。 信頼済みプロファイルが正しく設定されていることを確認するため、注意深く手順に従ってください。
検証範囲は kube-system ネームスペースに限定される
信頼済みプロファイルの信頼検証は現在、 Kubernetes および Red Hat OpenShift クラスタの kube-system 名前空間に限定されています。 この範囲外の他の信頼されたプロファイル機能や設定を試しているユーザーは、問題が発生する可能性があります。
VPC Block Storage ボリュームのユーザータグ
既知の問題により、信頼済みプロファイルが実装されている場合、VPC Block Storage ボリューム上のユーザータグの更新が表示されないことがあります。