Privileged Access Manager で利用資格を作成する

特定のプリンシパル セットに一時的な権限昇格を許可する利用資格を作成できます。利用資格を作成する際は、次の点に注意してください。

  • 利用資格は、組織、フォルダ、プロジェクトのいずれのレベルでも作成できます。各レベルで利用資格によって付与されるロールは、 Google Cloudリソース階層に従います。たとえば、組織レベルで利用資格によって付与されたロールは、フォルダレベルとプロジェクト レベルで継承されます。

  • Security Command Center Premium ティアまたは Enterprise ティアが組織レベルで有効になっている場合は、利用資格ごとに複数の承認レベルを必須にできます。これにより、利用資格ごとに最大 2 つのレベルの順次承認が可能になります。レベルごとに最大 5 つの承認を必須にできます。

    必要な数の第 1 レベルの承認が得られると、第 2 レベルの承認者にメール通知が送信されます。必要な数の第 2 レベルの承認が得られると、権限付与は active 状態に移行します。承認者が権限付与を拒否すると、権限付与は denied 状態に移行し、追加の承認者に送信されなくなります。

    この機能はプレビュー版でご利用いただけます。

  • サービス アカウントがこのリソースの権限付与を承認できる場合は、サービス アカウントとワークロード プール ID を承認者として追加できます。この設定を有効にする方法については、Privileged Access Manager の設定を構成するをご覧ください。

    この機能はプレビュー版でご利用いただけます。

  • グループを利用資格のリクエスト元として追加すると、そのグループ内のすべての個々のアカウントがその利用資格の権限付与をリクエストできます。ただし、昇格した権限を受け取ることができるのは、権限付与をリクエストした個々のアカウントのみです。

  • グループを利用資格の承認者として追加すると、そのグループ内のすべてのアカウントが権限付与リクエストを承認または拒否できるようになります。

  • 基本ロール(管理者、書き込み、読み取り)はサポートされていますが、以前の基本ロール(オーナー、編集者、閲覧者)はサポートされていません。

  • 利用資格にサービス エージェントのロールを含めないでください。

    一部のサービス エージェントのロールには強力な権限が含まれています。これらのロール内の権限は予告なく変更される場合があります。代わりに、別の事前定義ロールを選択するか、必要な権限を持つカスタムロールを作成してください。

始める前に

利用資格の作成に必要な権限を取得するには、利用資格を作成する組織、フォルダ、またはプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、利用資格の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

利用資格を作成するには、次の権限が必要です。

  • 組織の利用資格と権限付与を作成する:
    • resourcemanager.organizations.get
    • resourcemanager.organizations.setIamPolicy
    • privilegedaccessmanager.entitlements.create
  • フォルダの利用資格と権限付与を作成する:
    • resourcemanager.folders.get
    • resourcemanager.folders.setIamPolicy
    • privilegedaccessmanager.entitlements.create
  • プロジェクトの利用資格と権限付与を作成する:
    • resourcemanager.projects.get
    • resourcemanager.projects.setIamPolicy
    • privilegedaccessmanager.entitlements.create

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

利用資格を作成する

コンソール

  1. [Privileged Access Manager] ページに移動します。

    Privileged Access Manager に移動

  2. 利用資格を適用する組織、フォルダ、またはプロジェクトを選択します。

  3. [利用資格] タブをクリックします。

  4. [作成] をクリックします。

  5. [利用資格の詳細] セクションに、次の利用資格の詳細を入力します。

    • 利用資格の名前。利用資格名は 4 ~ 63 文字で指定できます。先頭は英小文字にする必要があります。使用できるのは英小文字、数字、ハイフンのみです。

    • 組織、フォルダ、プロジェクトに付与するロール(最大 30 個)。

      また、許可ポリシーのロール バインディングに条件を追加するのと同じ方法で、これらのロールに IAM 条件を追加することもできます。ただし、Privileged Access Manager の利用資格では、リソースのタグを確認する条件の使用はプレビュー版です。

    • 権限付与の最大期間。利用資格に設定できる最大期間は 7 日間です。

  6. [次へ] をクリックします。

  7. [リクエスト元を追加] セクションで、利用資格の有効なリクエスト元プリンシパルを最大 20 個まで入力します。

    allUsersallAuthenticatedUsers を除くすべてのプリンシパル タイプがサポートされています。20 を超える ID を追加するには、ID をグループに追加し、そのグループを利用資格に追加します。

  8. プリンシパルが権限付与リクエストの理由を示す必要があるかどうかを選択します。

  9. 利用資格にリクエストする資格が付与されたときに通知するユーザーの追加のメールアドレスを入力します。

    利用資格に関連付けられている Google ID(承認者やリクエスト送信者など)には自動的に通知されます。ただし、他のユーザーにも通知する場合は、そのユーザーのメールアドレスを追加できます。これは、Google アカウントではなく Workforce Identity を使用している場合に特に便利です。

  10. [次へ] をクリックします。

  11. [承認者を追加] セクションで、次のいずれかを行います。

    • 承認なしでロールの付与を許可するには、[承認なしでアクセスを有効化] を選択します。

    • 承認を必須にするには、次の操作を行います。

      1. 省略可: 承認者がリクエストの承認理由を入力する必要がある場合は、[承認者からの理由が必要] を選択します。
      2. 第 1 レベルの承認者の詳細を入力します。

        • 利用資格の承認者のリスト

          次のプリンシパル タイプを承認者として追加できます。

          • Google アカウント

          • Google グループ

          • Google Workspace のドメイン

          • Workforce プール ID

          • ワークロード プール ID

          • サービス アカウント

            サービス アカウントとワークロード プール ID は、サービス アカウントがこのリソースの権限付与を承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

        • 必要な承認数

          グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は approval awaited 状態のままになります。

        • 通知の送信先となる承認者のメールアドレス

      3. 省略可: 第 2 レベルの承認者の詳細を追加します。

        • 利用資格の承認者のリスト

          次のプリンシパル タイプを承認者として追加できます。

          • Google アカウント

          • Google グループ

          • Google Workspace のドメイン

          • Workforce プール ID

          • ワークロード プール ID

          • サービス アカウント

            サービス アカウントとワークロード プール ID は、サービス アカウントがこのリソースの権限付与を承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

        • 必要な承認数

          グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は approval awaited 状態のままになります。

        • 通知の送信先となる承認者のメールアドレス

    承認ごとに最大 20 人の承認者(ID またはグループ)を追加できます。20 人を超える承認者を追加する場合は、承認者をグループに追加し、そのグループを利用資格の承認者として追加します。

  12. [次へ] をクリックします。

  13. [利用資格を作成] をクリックします。

新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります

gcloud

gcloud alpha pam entitlements create コマンドは、組織、フォルダ、プロジェクト レベルで利用資格を作成します。

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

  • ENTITLEMENT_ID: 作成する利用資格 ID。ID は 4~63 文字で、[a-z0-9-] という文字を使用する必要があります。最初の文字は英字にする必要があります。
  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloudの組織、フォルダ、またはプロジェクトの ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • RESOURCE_MANAGER_RESOURCE_TYPE: スコープに応じて OrganizationFolderProject のいずれか。
  • ROLE: 利用資格が付与されたときに割り当てるロール
  • MAXIMUM_GRANT_DURATION: 権限付与をリクエストできる最長時間(秒)。サポートされる範囲は 30 分(1,800 秒)~ 168 時間(604,800 秒)です。
  • REQUESTING_MEMBER: 利用資格の付与をリクエストできるプリンシパル。allUsersallAuthenticatedUsers を除くすべてのプリンシパル タイプがサポートされています。

  • APPROVING_MEMBER: 利用資格リクエストを承認できるプリンシパル。有効な プリンシパル タイプは次のとおりです。

    • ユーザー
    • グループ
    • ドメイン
    • Workforce プール ID
    • ワークロード プール ID

      これは、サービス アカウントがこのリソースの利用資格リクエストを承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

    • サービス アカウント

      これは、サービス アカウントがこのリソースの利用資格リクエストを承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

  • APPROVALS_NEEDED: 利用資格リクエストを承認するために必要な承認者の数。

    グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は approval awaited 状態のままになります。

  • APPROVER_EMAIL_ADDRESSES: 省略可。権限付与がリクエストされたときに通知する追加のメールアドレス。権限付与の承認者に関連付けられている Google ID には自動的に通知が送信されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • ADMIN_EMAIL_ADDRESS: 省略可。リクエスト元にアクセス権が付与されたときに通知する追加のメールアドレス。権限付与の承認者に関連付けられている Google ID には自動的に通知が送信されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • REQUESTER_EMAIL_ADDRESS: 省略可。この利用資格をリクエストできるようになったときに通知する追加のメールアドレス。権限付与リクエスト元の Google ID には自動的に通知されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • CONDITION_EXPRESSION: 省略可。プリンシパルがロールの権限を使用できるタイミングを指定する条件式。この条件は、権限付与が有効な場合にのみ適用されます。

次の内容を entitlement.yaml という名前のファイルに保存します。

privilegedAccess:
  gcpIamAccess:
    resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE
    resource: //cloudresourcemanager.googleapis.com/RESOURCE_ID
    roleBindings:
    - role: ROLE_1
      conditionExpression: CONDITION_EXPRESSION_1
    - role: ROLE_2
      conditionExpression: CONDITION_EXPRESSION_2
maxRequestDuration: MAXIMUM_GRANT_DURATION
eligibleUsers:
- principals:
  - REQUESTING_MEMBER_1
  - REQUESTING_MEMBER_2
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: APPROVALS_NEEDED_1
      approverEmailRecipients:
      - APPROVER_EMAIL_ADDRESSES_1
      - APPROVER_EMAIL_ADDRESSES_2
      approvers:
      - principals:
       - APPROVING_MEMBER_1
       - APPROVING_MEMBER_2
    - approvalsNeeded: APPROVALS_NEEDED_2
      approverEmailRecipients:
       - APPROVER_EMAIL_ADDRESSES_3
       - APPROVER_EMAIL_ADDRESSES_4
      approvers:
      - principals:
        - APPROVING_MEMBER_3
        - APPROVING_MEMBER_4
requesterJustificationConfig:
  unstructured: {}
additionalNotificationTargets:
  adminEmailRecipients:
  - ADMIN_EMAIL_ADDRESS_1
  - ADMIN_EMAIL_ADDRESS_2
  requesterEmailRecipients:
  - REQUESTER_EMAIL_ADDRESS_1
  - REQUESTER_EMAIL_ADDRESS_2

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

Linux、macOS、Cloud Shell

gcloud alpha pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud alpha pam entitlements create `
    ENTITLEMENT_ID `
    --entitlement-file=entitlement.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud alpha pam entitlements create ^
    ENTITLEMENT_ID ^
    --entitlement-file=entitlement.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

Create request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - id: step-1
      approvalsNeeded: 3
      approvers:
      - principals:
        - user:alex@example.com
        - group:dev-team@example.com
    - id: step-2
      approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
  createTime: '2024-04-09T02:39:37.011866832Z'
  eligibleUsers:
  - principals:
    - user:bola@example.com
  etag: 00000000000000000000000000000000000000000000000000000000000=
  maxRequestDuration: 7200s
  name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
  privilegedAccess:
    gcpIamAccess:
      resource: //cloudresourcemanager.googleapis.com/RESOURCE_TYPE/RESOURCE_ID
      resourceType: cloudresourcemanager.googleapis.com/Project
      roleBindings:
      - role: roles/storage.admin
        id: hwarq_1
        conditionExpression: "request.time.getHours() >= 8"
  requesterJustificationConfig:
    unstructured: {}
  state: AVAILABLE
新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります

REST

Privileged Access Manager API の createEntitlement メソッドは、組織、フォルダ、プロジェクト レベルで利用資格を作成します。

リクエストのデータを使用する前に、次のように置き換えます。

  • SCOPE: 利用資格を作成する組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID の形式で指定します。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ENTITLEMENT_ID: 作成する利用資格 ID。ID は 4~63 文字で、[a-z0-9-] という文字を使用する必要があります。最初の文字は英字にする必要があります。
  • RESOURCE_MANAGER_RESOURCE_TYPE: スコープに応じて OrganizationFolderProject のいずれか。
  • ROLE: 利用資格が付与されたときに割り当てるロール
  • MAXIMUM_GRANT_DURATION: 権限付与をリクエストできる最長時間(秒)。サポートされる範囲は 30 分(1,800 秒)~ 168 時間(604,800 秒)です。
  • REQUESTING_MEMBER: 利用資格の付与をリクエストできるプリンシパル。allUsersallAuthenticatedUsers を除くすべてのプリンシパル タイプがサポートされています。

  • APPROVING_MEMBER: 利用資格リクエストを承認できるプリンシパル。有効な プリンシパル タイプは次のとおりです。

    • ユーザー
    • グループ
    • ドメイン
    • Workforce プール ID
    • ワークロード プール ID

      これは、サービス アカウントがこのリソースの利用資格リクエストを承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

    • サービス アカウント

      これは、サービス アカウントがこのリソースの利用資格リクエストを承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。

  • APPROVALS_NEEDED: 利用資格リクエストの承認に必要な承認者の数。

    グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は approval awaited 状態のままになります。

  • APPROVER_EMAIL_ADDRESSES: 省略可。権限付与がリクエストされたときに通知する追加のメールアドレス。権限付与の承認者に関連付けられている Google ID には自動的に通知が送信されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • ADMIN_EMAIL_ADDRESS: 省略可。リクエスト元にアクセス権が付与されたときに通知する追加のメールアドレス。権限付与の承認者に関連付けられている Google ID には自動的に通知が送信されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • REQUESTER_EMAIL_ADDRESS: 省略可。この利用資格をリクエストできるようになったときに通知する追加のメールアドレス。権限付与リクエスト元の Google ID には自動的に通知されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
  • CONDITION_EXPRESSION: 省略可。プリンシパルがロールの権限を使用できるタイミングを指定する条件式。この条件は、権限付与が有効な場合にのみ適用されます。

HTTP メソッドと URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID

リクエストの本文(JSON):

{
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE",
      "resource": "//cloudresourcemanager.googleapis.com/SCOPE",
      "roleBindings": [
        {
          "role": "ROLE_1",
          "conditionExpression": "CONDITION_EXPRESSION_1",
        },
        {
          "role": "ROLE_2",
          "conditionExpression": "CONDITION_EXPRESSION_2",
        },
      ]
    }
  },
  "maxRequestDuration": "MAXIMUM_GRANT_DURATION",
  "eligibleUsers": [
    {
      "principals": [
        "REQUESTING_MEMBER_1",
        "REQUESTING_MEMBER_2",
        ...
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "requireApproverJustification": true,
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_1",
                "APPROVING_MEMBER_2",
              ]
            }
          ],
          "approvalsNeeded": APPROVALS_NEEDED_1,
          "approverEmailRecipients": [
            "APPROVER_EMAIL_ADDRESSES_1",
            "APPROVER_EMAIL_ADDRESSES_2",
          ]
        },
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_3",
                "APPROVING_MEMBER_4",
              ]
            }
          ],
          "approvalsNeeded": APPROVALS_NEEDED_2,
          "approverEmailRecipients": [
            "APPROVER_EMAIL_ADDRESSES_3",
            "APPROVER_EMAIL_ADDRESSES_4",
          ]
        }
      ]
    }
  },
  "requesterJustificationConfig": {
    "unstructured": {
    }
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "ADMIN_EMAIL_ADDRESS_1",
      "ADMIN_EMAIL_ADDRESS_2",
    ],
    "requesterEmailRecipients": [
      "REQUESTER_EMAIL_ADDRESS_1",
      "REQUESTER_EMAIL_ADDRESS_2",
    ]
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。


{
  "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-05T03:35:14.596739353Z",
    "target": "projects/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

作成オペレーションの進行状況を確認するには、次のエンドポイントに GET リクエストを送信します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

次のエンドポイントに GET リクエストを送信して、すべてのオペレーションのリストを取得します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations
新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります

Terraform

Terraform を使用して利用資格を作成できます。詳細については、Terraform ドキュメントの google_privileged_access_manager_entitlement をご覧ください。 新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります

Config Connector

Kubernetes Config Connector を使用して利用資格を作成できます。詳細については、Config Connector のドキュメントで PrivilegedAccessManagerEntitlement をご覧ください。新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります

次のステップ