IBM Cloud Docs
カスタム役割の作成

カスタム役割の作成

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

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

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

必要なアクセス権限

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

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

コンソールでカスタムロールを作成する

単一のサービスを範囲とする新しい役割を作成できます。 つまり、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 プロバイダー・プラグインを構成します。 詳しくは、 IBM Cloud® のチュートリアルを参照してください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
  • main.tfという名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp 構成言語を使用してリソースを定義します。 詳細については 、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