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

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

信頼されたプロファイルを使用して、 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インフラサービス ライター、編集者、スナップショット・リモート・アカウント復元者 ストレージリソースのプロビジョニングと管理を可能にする。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。 リソースグループでカスタムストレージクラスを作成する場合は、リソースグループの信頼済みプロファイルにもビューアアクセスを割り当てる必要があることに注意してください。

さらに、 Classicインフラストラクチャを使用する予定の場合は、 Add/Upgrade Storage (Storage Layer) および Storage Manage 権限を有効にする必要があります。 これらの権限を有効にするには、UIで 信頼済みプロファイルダッシュボードに移動し、関連する信頼済みプロファイルを選択します。 [クラシック インフラストラクチャ] をクリックし、 [販売デバイス] の下のオプションを展開して権限を見つけます。

個々のストレージ・コンポーネントの最小アクセス要件

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

VPC ブロック・ストレージ

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

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

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

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

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

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

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

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

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

コンピュート・リソースの代わりにコンピュート・リソース・タブのコンピュート・サービス・タイプ

VPCファイルストレージ

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

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

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

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

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

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

  • コンピュートサービスタイプ(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インフラサービス 編集者、ライター ストレージリソースのプロビジョニングと管理を可能にする。
リソース・グループ ビューアー 信頼済みプロファイルを適用するリソースグループを指定します。 複数のリソースグループにまたがって操作する場合は、関連するすべてのリソースグループを指定する必要があります。

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

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

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

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

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

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

  3. IBM Cloud Kubernetes Service サービスとの信頼関係を築く。

    1. Select trusted entity type セクションで、 Compute resourcesをクリックします。
    2. 信頼関係の作成 」で Kubernetes.
    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":"IKS_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 ks experimental trusted-profile set --trusted-profile PROFILE --cluster CLUSTER [--output OUTPUT] [-q]
    
    --cluster CLUSTER
    信頼済みプロファイルを設定するクラスタID。 クラスタIDを取得するには、 ibmcloud ks cluster get を実行する。
    --trusted-profile PROFILE
    信頼できるプロファイルID。 信頼できるプロファイルIDを取得するには、 ibmcloud iam trusted-profiles を実行します。
    --output OUTPUT
    指定された形式でコマンド出力を表示します。 受け入れられる値: json
    -q
    その日のメッセージを表示せず、リマインダーも更新しません。

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

    ibmcloud ks 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 ks 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 ボリューム上のユーザータグの更新が表示されないことがあります。