カスタム役割の作成

サービスごとに、サービスのコンテキストでユーザーが実行できる具体的なアクションが、プラットフォーム役割またはサービス役割にマップされています。 IBM Cloud® Identity and Access Management (IAM) の「ロール」ページから、 アカウント利用可能なすべてのロールと、特定のサービスのすべてのロールを、それぞれにマッピングされているアクションを含めて表示できます。 特定のサービスに対するすべての役割のアクションから選び抜いたアクションを組み合わせて任意のカスタム役割を作成できます。

多くのサービスでは、さまざまなアクションのセットを、さまざまなプラットフォーム役割またはサービス役割にマップしています。 しかし、カスタムのユース・ケースに合った割り当てにするために、サービスの複数の役割に現在分散しているいくつかのアクションを組み合わせたい場合があります。 例えば、カスタム・ロールを使えば、異なるロールにマッピングされたアクションを選択することができ、次回サービスにアクセスを割り当てる際に、3つの異なるロールを選択する必要がなくなります。

固有の使用シナリオとして、アクセス管理タグを制御するための独自のカスタム役割を作成することが可能です。 アクセス管理タグをリソースに付ける権限とリソースから外す権限を分けることもできます。 例えば、ユーザーがリソースにアクセス管理タグを付けることはできるが外すことはできないカスタム役割や、外すことはできるが付けることはできないカスタム役割などを作成することができます。

名前が異なる2つのロールを作成しましたが、アクションのセットはまったく同じでした。 IAMは、たとえ名前が一意であっても、同じパーミッションを持つロールを重複として扱う。

必要なアクセス権限

誰でも 「ロール」 ページでアカウント利用可能なロールを表示できますが、カスタムロールの作成、編集、削除を行うには、ロール管理アカウント管理サービスの特定のアクセス権が割り当てられている必要があります。

役割管理サービスのアクション
役割 アクション
エディター 役割の表示名、説明、役割にマップされているアクションを編集および更新できる。
管理者 カスタム役割を作成、編集、更新、削除する。役割管理サービスに対するアクセス権限をアカウントの他のユーザーに割り当てる。

コンソールでのカスタムロールの作成

単一のサービスを範囲とする新しい役割を作成できます。 つまり、2 つの異なるサービスのアクションをカスタム役割で組み合わせることはできませんが、単一のサービスについては、必要な数だけアクションを組み合わせて新しい役割にすることができます。 任意の名前でカスタム役割を作成すると、特定のサービスに対するアクセス権限の割り当てを実行できるアカウントのだれもが、アクセス権限を割り当てるときにその役割を使用できるようになります。

カスタム役割は、個別の IAM 対応サービスにのみ作成できます。 カスタム役割を、all account management services または all IAM-enabled services のオプションとして作成することはできません。

  1. IBM Cloud® コンソールで、「管理」 > **「アクセス (IAM)」と移動し、「役割」**を選択します。

  2. 「作成」 をクリックします。

  3. 役割の名前を入力します。 この名前はアカウント内で固有である必要があります。 この役割の名前が、ユーザーがサービスに対するアクセス権限を割り当てるときに、コンソールに表示されます。

  4. 役割の ID を入力します。 この ID は CRN の中で使用されます。API を使用してアクセス権限を割り当てるときには、CRN が使用されます。 役割 ID は、先頭を大文字にして、英数字のみを使用する必要があります。

  5. オプション: この役割の割り当てによってどのようなレベルのアクセス権限が付与されるかが、アクセス権限を割り当てるユーザーにわかるように、簡潔で役立つ説明を入力します。 この説明も、ユーザーがサービスに対するアクセス権限を割り当てるときに、コンソールに表示されます。

  6. 役割を作成するサービスを選択します。

  7. 使用可能なアクションを確認し、新しい役割に入れるすべてのアクションについて、**「追加」**を選択します。

    新しいロールを正常に作成するために、少なくとも1つのサービス定義アクションを追加してください。 サービス定義のアクションがどれかわからない場合は、「タイプ」列を見てください。

  8. アクションの追加が完了したら、**「作成」**をクリックします。

カスタム役割で使用しているアクションがサービスから除去された場合、そのカスタム役割は更新されません。また、除去されたアクションしか役割に含まれていない場合、その役割は無効になる可能性があります。

不要になったためにカスタム役割を削除する場合は、役割管理サービスに対する管理者役割を割り当てられている必要があります。 カスタム役割を削除すると、その役割を介してアクセス権限を割り当てられていたユーザー、アクセス・グループ、またはサービス ID のアクセス権限が自動的に更新されて、既存のポリシーから対象の役割が削除されます。

Terraformを使ってカスタムロールを作成する

Terraformを使ってカスタムロールを作成する前に、以下を完了していることを確認してください:

  • Terraform CLIをインストールし、Terraform用の IBM Cloud Providerプラグインを設定する。 詳しくは、 でTerraformを始める IBM Cloud® のチュートリアルをご覧ください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
  • main.tfという名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp Configuration Languageを使用してリソースを定義します。 詳しくは Terraformのドキュメントを参照。

以下の手順を使用して、カスタム・ロールを作成します:

  1. main.tf ファイルに引数を作成する。 以下の例では、 ibm_iam_custom_role リソースを使用してカスタム・ロールを作成しています。 name はカスタム・ロールを識別する一意の名前です。 新しいロールを正常に作成するには、少なくとも1つのサービス定義 action

    resource "ibm_iam_custom_role" "customrole" {
     name         = "Role1"
     display_name = "Role1"
     description  = "This is a custom role"
     service = "kms"
     actions      = ["kms.secrets.rotate"]
    }
    

    service 、カスタム・ロールを作成するサービス名を指定できます。 詳しくは Terraform Identity and Access Management(IAM) ページの引数リファレンスの詳細を参照してください。

  2. 設定ファイルのビルドが終わったら、Terraform CLIを初期化します。 詳しくは、 作業ディレクトリの初期化を参照のこと。

    terraform init
    
  3. main.tf ファイルからリソースをプロビジョニングする。 詳しくは Terraformによるインフラのプロビジョニングを参照してください。

    1. terraform plan を実行してTerraformの実行計画を生成し、提案されたアクションをプレビューする。

      terraform plan
      
    2. terraform apply を実行し、プランで定義されたリソースを作成する。

      terraform apply