コンピュート・リソースのアプリのアクセス権限の管理

このチュートリアルでは、アプリケーション用にサービス ID を作成したり API キーのライフサイクルを管理したりすることなく、コンピュート・リソースで実行されるすべてのアプリケーションのための権限をきめ細かく一元的に管理する手順について説明します。 このチュートリアルを行うと、トラステッド・プロファイルを作成し、特定の属性に基づいてコンピュート・リソースとの信頼を確立し、リソースに対するアクセス権限を割り当てるポリシーを定義する方法を学習できます。

トラステッド・プロファイルを使用すると、コンピュート・リソースで実行されるアプリから他の IBM Cloud® リソースへのアクセスを柔軟かつ安全な方法で確立できるようになります。 名前、名前空間、タグ、ロケーションなどの特定の属性を共有するすべてのコンピュート・リソース・インスタンスを、共通の 1 つのプロファイルにマップし、IBM Cloud リソースに対するアクセス権限を共有させることができます。 その共通の ID によって、さまざまなコンピュート・リソースに含まれているアプリケーションに、外部リソースに対するアクセス権限を (クラスター単位ではなく) 一括して付与することができます。

信頼済みプロファイルIDを適用するには、 Kubernetes クラスターで サービス・ アカウント トークンの数量予測 を有効にする必要があります。 詳しくは、IAM トラステッド・プロファイルを使用してクラスター内のポッドに IBM Cloud サービスに対する権限を付与する方法を参照してください。

新しいチャットボット・アプリを IBM Cloud® Kubernetes Service クラスターで稼働させることを計画中のチームで、プロジェクトの主任開発者を務めていると想定してください。 あなたは、資格情報をコードに保管することなく、アプリから IAM 対応サービスにアクセスできるようにしたいと考えています。 あなたはマネージャーからアカウントの管理者権限を与えられているので、トラステッド・プロファイルを作成し、チャットボット・アプリの作成に必要なリソースにランタイム環境からアクセスできるようにすることができます。

開始前に

  • このチュートリアルでは、費用が発生する場合があります。 コスト見積もりツールを使用して、予測使用量に基づいてコスト見積もりを生成します。
  • 以下のアクセス権限があることを確認してください。
    • トラステッド・プロファイルを作成するために、アカウントの管理者役割
    • リソースに対するアクセス権限を割り当てるために、そのリソースの管理者役割
  • IBM Cloud Kubernetes Service バージョン 1.21 以降を実行するクラスターを作成してください。 クラスターの作成方法について詳しくは、IBM Cloud Kubernetes Service 概説を参照してください。

トラステッド・プロファイルの作成

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

  1. IBM Cloudコンソールで、「管理」>**「アクセス (IAM)」に移動して、「トラステッド・プロファイル」**を選択します。
  2. 「プロファイルの作成」 をクリックします。
  3. プロファイルに Chatbot Project という名前を付けます。
  4. 説明として、プロファイルに割り当てるアクセス権限のレベルを列挙します。 こうすると、トラステッド・プロファイルのリストでさまざまなプロファイルを簡単に見分けられるようになります。 この場合、以下のようになります。
    1. ライター
    2. マネージャー
  5. 「続行」 をクリックします。

プロファイル名は人間が読める短い名前にしてください。 コンピュート・リソースの場合は、コンピュート・リソース・トークンを取得するときにプロファイルの名前が必要になります。そのため、シンプルな名前にすると開発者がプログラム内でプロファイル名を使用しやすくなります。

Kubernetes クラスターとの信頼の確立

トラステッド・プロファイルを作成したので、プロジェクト用に作成した Kubernetes クラスターとの信頼を確立します。

  1. 信頼エンティティー・タイプとして、**「コンピュート・リソース」**を選択します。

  2. コンピュート・サービスとして、リストから**「Kubernetes」**を選択します。

  3. 1 つ以上の既存のコンピュート・リソース・インスタンスとの信頼を確立するために、**「特定のリソース」**を選択します。

  4. **「別のリソースの追加 (Add another resource)」**をクリックします。

  5. このチュートリアル用に作成したクラスターを選択します。

  6. namespace フィールドと service account フィールドの値を入力します。

    入力する Kubernetes 名前空間および Kubernetes サービス・アカウント名は、既に存在している必要はありません。 将来これらの名前が付けられる任意の名前空間またはサービス・アカウントが信頼を確立できます。 既存の名前空間をリストするには、クラスターにログインして kubectl get ns を実行してください。 既存のサービス・アカウントをリストするには、クラスターにログインして kubectl get sa -n <namespace> を実行します。 両方にdefaultを入力することもできます。

  7. 「続行」 をクリックします。

他の IBM Cloud サービスに対するアクセス権限の割り当て

これで、チームのチャットボット・プロジェクトに必要な他の IBM Cloud サービスに対するアクセス権限をコンピュート・リソース・インスタンスに付与するためのアクセス・ポリシーを作成できます。

  1. 「アクセス・ポリシー」 を選択します。
  2. サービスのリストから**「Watson Assistant」を選択します。 このプロファイルでアクセス権限を付与するサービスに対して、アクセス権限を持っている必要があります。「次へ」**をクリックします。
  3. 選択した属性に基づいて、アクセス権限のスコープを**「特定のリソース」**に設定します。
  4. **「サービス・インスタンス」**を選択し、サービス・インスタンス名を入力して、特定のインスタンスに対する権限を付与します。 **「次へ」**をクリックします。
  5. 「ライター」役割と「マネージャー」役割を選択して、アクセス権限のスコープを定義し、**「確認」**をクリックします。
  6. 追加をクリックして、ポリシー構成をポリシー・サマリーに追加します。
  7. 割り当て をクリックします。

次のステップ

Kubernetes クラスターとの信頼の確立について詳しくは、Kubernetes および OpenShift クラスターでのトラステッド・プロファイルの使用を参照してください。 VPC仮想サーバーインスタンスで信頼済みプロファイルを使用する方法については、「 VPC仮想サーバーインスタンスの信頼済みプロファイルの導入 」を参照してください。

トラステッド・プロファイルの作成方法の基礎を学習したので、追加のコンピュート・リソースとの信頼の確立に進むことができます。 詳しくは、トラステッド・プロファイルの更新を参照してください。

Activity Tracker を使用して、トラステッド・プロファイルをどのフェデレーテッド・ユーザーおよびコンピュート・リソースに適用するかをモニターすることもできます。 詳しくは、トラステッド・プロファイルのログイン・セッションのモニターを参照してください。