特定のプリンシパル セットに一時的な権限昇格を許可する利用資格を作成できます。利用資格を作成する際は、次の点に注意してください。
利用資格は、組織、フォルダ、プロジェクトのいずれのレベルでも作成できます。各レベルで利用資格によって付与されるロールは、 Google Cloudリソース階層に従います。たとえば、組織レベルで利用資格によって付与されたロールは、フォルダレベルとプロジェクト レベルで継承されます。
Security Command Center Premium ティアまたは Enterprise ティアが組織レベルで有効になっている場合は、利用資格ごとに複数の承認レベルを必須にできます。これにより、利用資格ごとに最大 2 つのレベルの順次承認が可能になります。レベルごとに最大 5 つの承認を必須にできます。
必要な数の第 1 レベルの承認が得られると、第 2 レベルの承認者にメール通知が送信されます。必要な数の第 2 レベルの承認が得られると、権限付与は
active状態に移行します。承認者が権限付与を拒否すると、権限付与はdenied状態に移行し、追加の承認者に送信されなくなります。この機能はプレビュー版でご利用いただけます。
サービス アカウントがこのリソースの権限付与を承認できる場合は、サービス アカウントとワークロード プール ID を承認者として追加できます。この設定を有効にする方法については、Privileged Access Manager の設定を構成するをご覧ください。
この機能はプレビュー版でご利用いただけます。
グループを利用資格のリクエスト元として追加すると、そのグループ内のすべての個々のアカウントがその利用資格の権限付与をリクエストできます。ただし、昇格した権限を受け取ることができるのは、権限付与をリクエストした個々のアカウントのみです。
グループを利用資格の承認者として追加すると、そのグループ内のすべてのアカウントが権限付与リクエストを承認または拒否できるようになります。
基本ロール(管理者、書き込み、読み取り)はサポートされていますが、以前の基本ロール(オーナー、編集者、閲覧者)はサポートされていません。
利用資格にサービス エージェントのロールを含めないでください。
一部のサービス エージェントのロールには強力な権限が含まれています。これらのロール内の権限は予告なく変更される場合があります。代わりに、別の事前定義ロールを選択するか、必要な権限を持つカスタムロールを作成してください。
始める前に
利用資格の作成に必要な権限を取得するには、利用資格を作成する組織、フォルダ、またはプロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。
-
組織の利用資格を作成する:
-
Privileged Access Manager 管理者 (
roles/privilegedaccessmanager.admin) - セキュリティ管理者(
roles/iam.securityAdmin)
-
Privileged Access Manager 管理者 (
-
フォルダの作成:
-
Privileged Access Manager 管理者 (
roles/privilegedaccessmanager.admin) -
フォルダ IAM 管理者 (
roles/resourcemanager.folderAdmin)
-
Privileged Access Manager 管理者 (
-
プロジェクトの利用資格を作成します。
-
Privileged Access Manager 管理者 (
roles/privilegedaccessmanager.admin) -
プロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin)
-
Privileged Access Manager 管理者 (
- 監査ログを表示する: ログビューア(
roles/logs.viewer)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、利用資格の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
利用資格を作成するには、次の権限が必要です。
-
組織の利用資格と権限付与を作成する:
-
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
-
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
利用資格を作成する
コンソール
[Privileged Access Manager] ページに移動します。
利用資格を適用する組織、フォルダ、またはプロジェクトを選択します。
[利用資格] タブをクリックします。
[作成] をクリックします。
[利用資格の詳細] セクションに、次の利用資格の詳細を入力します。
[次へ] をクリックします。
[リクエスト元を追加] セクションで、利用資格の有効なリクエスト元プリンシパルを最大 20 個まで入力します。
allUsersとallAuthenticatedUsersを除くすべてのプリンシパル タイプがサポートされています。20 を超える ID を追加するには、ID をグループに追加し、そのグループを利用資格に追加します。プリンシパルが権限付与リクエストの理由を示す必要があるかどうかを選択します。
利用資格にリクエストする資格が付与されたときに通知するユーザーの追加のメールアドレスを入力します。
利用資格に関連付けられている Google ID(承認者やリクエスト送信者など)には自動的に通知されます。ただし、他のユーザーにも通知する場合は、そのユーザーのメールアドレスを追加できます。これは、Google アカウントではなく Workforce Identity を使用している場合に特に便利です。
[次へ] をクリックします。
[承認者を追加] セクションで、次のいずれかを行います。
承認なしでロールの付与を許可するには、[承認なしでアクセスを有効化] を選択します。
承認を必須にするには、次の操作を行います。
- 省略可: 承認者がリクエストの承認理由を入力する必要がある場合は、[承認者からの理由が必要] を選択します。
第 1 レベルの承認者の詳細を入力します。
利用資格の承認者のリスト
次のプリンシパル タイプを承認者として追加できます。
Google アカウント
Google グループ
Google Workspace のドメイン
Workforce プール ID
ワークロード プール ID
サービス アカウント
サービス アカウントとワークロード プール ID は、サービス アカウントがこのリソースの権限付与を承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。
必要な承認数
グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は
approval awaited状態のままになります。通知の送信先となる承認者のメールアドレス
省略可: 第 2 レベルの承認者の詳細を追加します。
利用資格の承認者のリスト
次のプリンシパル タイプを承認者として追加できます。
Google アカウント
Google グループ
Google Workspace のドメイン
Workforce プール ID
ワークロード プール ID
サービス アカウント
サービス アカウントとワークロード プール ID は、サービス アカウントがこのリソースの権限付与を承認できる場合にのみ使用できます。詳細については、Privileged Access Manager の設定を構成するをご覧ください。
必要な承認数
グループを承認者として追加した場合は、必要な承認の数がグループ内のプリンシパルの数以下であることを確認します。それ以外の場合、権限付与は
approval awaited状態のままになります。通知の送信先となる承認者のメールアドレス
承認ごとに最大 20 人の承認者(ID またはグループ)を追加できます。20 人を超える承認者を追加する場合は、承認者をグループに追加し、そのグループを利用資格の承認者として追加します。
[次へ] をクリックします。
[利用資格を作成] をクリックします。
新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります。
gcloud
gcloud alpha pam entitlements create コマンドは、組織、フォルダ、プロジェクト レベルで利用資格を作成します。
後述のコマンドデータを使用する前に、次のように置き換えます。
ENTITLEMENT_ID: 作成する利用資格 ID。ID は 4~63 文字で、[a-z0-9-]という文字を使用する必要があります。最初の文字は英字にする必要があります。RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値organization、folder、またはprojectを使用します。RESOURCE_ID:RESOURCE_TYPEとともに使用します。利用資格を管理する Google Cloudの組織、フォルダ、またはプロジェクトの ID。プロジェクト ID は英数字からなる文字列です(例:my-project)。フォルダ ID と組織 ID は数値です(例:123456789012)。RESOURCE_MANAGER_RESOURCE_TYPE: スコープに応じてOrganization、Folder、Projectのいずれか。ROLE: 利用資格が付与されたときに割り当てるロール。MAXIMUM_GRANT_DURATION: 権限付与をリクエストできる最長時間(秒)。サポートされる範囲は 30 分(1,800 秒)~ 168 時間(604,800 秒)です。-
REQUESTING_MEMBER: 利用資格の付与をリクエストできるプリンシパル。allUsersとallAuthenticatedUsersを除くすべてのプリンシパル タイプがサポートされています。 -
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_ID、folders/FOLDER_ID、projects/PROJECT_IDの形式で指定します。プロジェクト ID は英数字からなる文字列です(例:my-project)。フォルダ ID と組織 ID は数値です(例:123456789012)。ENTITLEMENT_ID: 作成する利用資格 ID。ID は 4~63 文字で、[a-z0-9-]という文字を使用する必要があります。最初の文字は英字にする必要があります。RESOURCE_MANAGER_RESOURCE_TYPE: スコープに応じてOrganization、Folder、Projectのいずれか。ROLE: 利用資格が付与されたときに割り当てるロール。MAXIMUM_GRANT_DURATION: 権限付与をリクエストできる最長時間(秒)。サポートされる範囲は 30 分(1,800 秒)~ 168 時間(604,800 秒)です。-
REQUESTING_MEMBER: 利用資格の付与をリクエストできるプリンシパル。allUsersとallAuthenticatedUsersを除くすべてのプリンシパル タイプがサポートされています。 -
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 をご覧ください。新しく作成された利用資格が反映されて使用可能になるまでに、数分かかることがあります。