IAM によるアクセス制御

このページでは、Model Armor リソースへのアクセスを制御する方法について説明します。

Model Armor は、Identity and Access Management(IAM)を使用して リソースへのアクセスを制御します。IAM は、リソースのきめ細かい認可を管理するためのツールです。 Google Cloud つまり、どのリソースで誰が何をできるかを制御できます。

IAM を使用してリソースへのアクセス権をユーザーに付与するには、特定のロールを付与します。 IAM ロールにより、プリンシパルは Model Armor リソースでタスクを実行する権限を取得します。

IAM とその機能の詳細については、 IAM のドキュメントをご覧ください。

Model Armor リソースへのアクセスを管理する

IAM でアクセスを管理する最も一般的な方法は、許可ポリシーを使用することです。許可ポリシーには、リソースにアクセスできるプリンシパルと、そのプリンシパルがリソースに対して実行できるアクションが記述されています。

以降のセクションでは、許可ポリシーで単一のロールを付与および取り消す方法について説明します。 Google Cloud コンソールと Google Cloud CLI を使用します。複数のロールを同時に付与および取り消すこともできます。詳細については、IAM のドキュメントのプロジェクト、フォルダ、 組織へのアクセス権の管理をご覧ください。

これらのセクションでは、プロジェクト レベルでのアクセス権の付与と取り消しに焦点を当てています。これにより、プロジェクトとプロジェクト内のすべてのリソースに対する ユーザーのアクセスを制御できます。

さまざまな リソースに適用される許可ポリシーを使用して、リソース階層の他のレベルでアクセスを管理することもできます。 Google Cloud 詳細については、IAM のドキュメントのリソース階層を使用したアクセス 制御をご覧ください。

すべてのリソースが許可ポリシーをサポートしているわけではありません。許可ポリシーを適用できるリソースについては、IAM のドキュメントの許可ポリシーをサポートするリソースをご覧ください。

拒否ポリシーなど、IAM でアクセスを制御するために使用できる他のポリシーについては、IAM ポリシーの種類を IAM のドキュメントでご覧ください。

単一の IAM ロールを付与する

プリンシパルに 1 つのロールを付与する方法は次のとおりです。

コンソール

  1. コンソールで、[IAM] ページに移動します。 Google Cloud

    [Go to IAM]

  2. プロジェクト、フォルダ、または組織を選択します。
  3. ロールを付与するプリンシパルを選択します。
  4. プルダウン リストで、付与するロールを選択します。セキュリティのベスト プラクティスに沿って、プリンシパルが必要とする権限のみを含むロールを選択してください。
  5. (省略可)ロールに条件を追加します。
  6. [保存] をクリックします。リソースのロールがプリンシパルに付与されます。

gcloud

  1. コンソールで Cloud Shell をアクティブにします。 Google Cloud

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。

  2. add-iam-policy-binding コマンドを使用すると、プリンシパルにロールをすばやく付与できます。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • RESOURCE_TYPE: アクセスを管理するリソースタイプ。projectsresource-manager folders、または organizations を使用します。

    • RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

    • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。 例: user:my-user@example.com または principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.comPRINCIPAL に使用できる値の一覧については、プリンシパル ID をご覧ください。

      プリンシパル タイプが user の場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。

    • ROLE_NAME: 付与するロールの名前。次のいずれかの形式で指定してください。

      • 事前定義ロール: roles/SERVICE.IDENTIFIER
      • プロジェクト レベルのカスタムロール: projects/PROJECT_ID/roles/IDENTIFIER
      • 組織レベルのカスタムロール: organizations/ORG_ID/roles/IDENTIFIER

      事前定義ロールのリストについては、ロールについてをご覧ください。

    • CONDITION: ロール バインディングに追加する条件。条件を追加しない場合は、値 None を使用します。条件の詳細については、条件の概要をご覧ください。

    次のコマンドを実行します。

    Linux、macOS、Cloud Shell

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
        --member=PRINCIPAL --role=ROLE_NAME \
        --condition=CONDITION

    Windows(PowerShell)

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID `
        --member=PRINCIPAL --role=ROLE_NAME `
        --condition=CONDITION

    Windows(cmd.exe)

    gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^
        --member=PRINCIPAL --role=ROLE_NAME ^
        --condition=CONDITION

    レスポンスには、更新された IAM 許可ポリシーが含まれます。

単一の IAM ロールを取り消す

プリンシパルの 1 つのロールを取り消すには、次の手順を行います。

コンソール

  1. コンソールで、[IAM] ページに移動します。 Google Cloud

    [IAM] に移動

  2. プロジェクト、フォルダ、または組織を選択します。
  3. アクセス権を取り消すプリンシパルを含む行を探します。次に、その行の [**プリンシパルを編集**]をクリックします。
  4. 取り消すロールの [Delete] button をクリックし、[Save] をクリックします。

gcloud

  1. コンソールで Cloud Shell をアクティブにします。 Google Cloud

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。

  2. ユーザーからロールを取り消すには、remove-iam-policy-binding コマンドを実行します。

    gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \
        --member=PRINCIPAL --role=ROLE_NAME

    次の値を指定します。

    • RESOURCE_TYPE: アクセスを管理するリソースタイプ。projectsresource-manager folders、または organizations を使用します。

    • RESOURCE_ID: Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

    • PRINCIPAL: プリンシパルまたはメンバーの識別子。通常、PRINCIPAL_TYPE:ID の形式で指定します。 たとえば、user:my-user@example.comprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com です。

      プリンシパル タイプが user の場合、識別子に含まれるドメイン名は Google Workspace ドメインまたは Cloud Identity ドメインである必要があります。Cloud Identity ドメインの設定方法については、Cloud Identity の概要をご覧ください。

    • ROLE_NAME: 取り消すロールの名前。次のいずれかの形式で指定してください。

      • 事前定義ロール: roles/SERVICE.IDENTIFIER
      • プロジェクト レベルのカスタムロール: projects/PROJECT_ID/roles/IDENTIFIER
      • 組織レベルのカスタムロール: organizations/ORG_ID/roles/IDENTIFIER

      事前定義ロールのリストについては、ロールについてをご覧ください。

    たとえば、プロジェクト example-project のサービス アカウント example-service-account@example-project.iam.gserviceaccount.com のプロジェクト作成者のロールを取り消すには、次のコマンドを使用します。

    gcloud projects remove-iam-policy-binding example-project \
          --member=serviceAccount:example-service-account@example-project.iam.gserviceaccount.com \
          --role=roles/resourcemanager.projectCreator

必要なロールを取り消さないように、 変更リスク の推奨事項を有効にできます。変更リスクの推奨事項により、 Google Cloud で 重要とされているプロジェクト レベルのロールを取り消そうとすると、警告が生成されます。

条件付きアクセス

IAM Conditions を使用すると、指定された条件が満たされた場合にのみプリンシパルに アクセス権を付与することで、ポリシーをより細かく設定できます。条件は、 プリンシパル、リソース、リクエストに関連する属性に基づいています。たとえば、プリンシパルが特定のリソースから、または特定の時間にリソースにアクセスする場合にのみ、アクセス権を付与できます。

許可ポリシーの条件は、次のタイプの属性に基づいています。

  • リソース属性: リソースのサービス、タイプ、名前が含まれます。これらの属性は通常、ロール バインディングによって付与されるアクセスのスコープを変更するために使用されます。
  • リクエスト属性: リクエストを行ったプリンシパルの時間やアクセスレベルなど、リクエストの詳細が含まれます。これらの 属性を使用すると、アクセスレベル、日時、宛先 IP アドレスとポート、想定 URL パスなど、リクエストの詳細情報を評価する条件を作成できます。

Model Armor でサポートされている条件属性の詳細については、IAM ドキュメントの IAM Conditions の属性のリファレンスをご覧ください。

Model Armor リソースで条件付きアクセスを直接付与することはできません。ただし、プロジェクト、フォルダ、組織などのコンテナ リソースのプリンシパルにロールを付与し、これらのロール バインディングに条件を追加することで、Model Armor リソースタイプに条件付きアクセス権を付与できます。コンテナ リソースの許可ポリシーに追加された条件は、そのコンテナ リソースに含まれるリソースによって継承されます。継承された条件の詳細については、IAM ドキュメントの継承された条件のサポートをご覧ください。

ロール バインディングに条件を追加する方法については、IAM ドキュメントの条件付きロール バインディングの管理をご覧ください。

次のステップ