権限を一時的に昇格するには、Privileged Access Manager(PAM)で、一定期間の利用資格に対する権限付与をリクエストします。
利用資格には、権限付与リクエストが成功した後に付与されるロールが含まれます。これらのロールは、権限付与が終了すると Privileged Access Manager によって削除されます。
利用資格に対して権限付与をリクエストする場合は、次の点に注意してください。
リクエストできるのは、自身が追加されている利用資格に対する権限付与のみです。利用資格を追加する場合は、利用資格を管理しているプリンシパルに連絡してください。
設定によっては、権限付与リクエストに承認が必要になる場合があります。
権限付与リクエストが承認を必要とし、24 時間以内に承認または不承認にならない場合、権限付与のステータスは
Expired
に変更されます。その後、権限の昇格がまだ必要な場合は、新しい権限付与リクエストを行う必要があります。許可リクエストが成功しても、有効になるまでに数分かかることがあります。
Google Cloud コンソールで権限付与をリクエストする
利用資格に対する付与をリクエストするには、次の操作を行います。
[Privileged Access Manager] ページに移動します。
権限付与をリクエストする組織、フォルダ、またはプロジェクトを選択します。
[利用資格] タブで、リクエストする利用資格を見つけて、同じ行の [権限付与をリクエスト] をクリックします。
以下の詳細を入力します。
権限付与に必要な期間(利用資格に設定されている最大期間まで)。
必要な場合、権限付与の正当性。
省略可: 権限付与リクエストを通知するメールアドレス。承認者に関連付けられている Google ID に自動的に通知されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
[権限付与をリクエスト] をクリックします。
承認ステータスを含む権限付与の履歴を表示するには、[権限付与] タブ、[自分の権限付与] タブの順にクリックします。
プログラムで権限付与をリクエストする
利用資格に対する権限付与をリクエストするには、次の手順を完了する必要があります。
権限付与をリクエストできる利用資格の ID を検索します。
権限付与をリクエストします。
権限付与のステータスを確認して、有効かどうか(つまり、一時的な昇格を受け取ったかどうか)を確認できます。
利用可能な利用資格を検索する
gcloud
grant-requester
呼び出し元のアクセスタイプを指定して gcloud beta pam entitlements search
コマンドを実行すると、権限付与をリクエストできる利用資格を検索できます。
後述のコマンドデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 省略可。利用資格が属するリソースタイプ。値organization
、folder
、またはproject
を使用します。RESOURCE_ID
:RESOURCE_TYPE
とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud beta pam entitlements search \ --caller-access-type=grant-requester \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows(PowerShell)
gcloud beta pam entitlements search ` --caller-access-type=grant-requester ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows(cmd.exe)
gcloud beta pam entitlements search ^ --caller-access-type=grant-requester ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
次のようなレスポンスが返されます。
additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '22024-03-26T11:07:37.009498890Z' etag: ETAG maxRequestDuration: 3600s name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requesterJustificationConfig: notMandatory: {} state: AVAILABLE updateTime: '2024-03-26T11:07:40.056780645Z'
REST
Privileged Access Manager API の searchEntitlements
メソッドは、GRANT_REQUESTER
呼び出し元のアクセスタイプを使用して、権限付与をリクエストできる利用資格を検索します。
リクエストのデータを使用する前に、次のように置き換えます。
SCOPE
: 利用資格が含まれる組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_ID
、folders/FOLDER_ID
、またはprojects/PROJECT_ID
の形式です。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。FILTER
: 省略可。フィールド値が AIP-160 式と一致する利用資格を返します。PAGE_SIZE
: 省略可。レスポンスで返すアイテムの数。PAGE_TOKEN
: 省略可。前のレスポンスで返されたページトークンを使用して、レスポンスの開始ページを指定します。
HTTP メソッドと URL:
GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements:search?callerAccessType=GRANT_REQUESTER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
[ { "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID", "createTime": "2023-11-21T17:28:39.962144708Z", "updateTime": "2023-11-21T17:28:43.160309410Z", "eligibleUsers": [ { "principals": [ "user:alex@example.com" ] } ], "approvalWorkflow": { "manualApprovals": { "steps": [ { "approvers": [ { "principals": [ "user:bola@example.com" ] } ], "approvalsNeeded": 1 } ] } }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "maxRequestDuration": "14400s", "state": "AVAILABLE", "requesterJustificationConfig": { "unstructured": {} }, "additionalNotificationTargets": { "adminEmailRecipients": [ "alex@example.com" ] }, "etag": "ETAG" } ]
利用資格に対する権限付与をリクエストする
gcloud
gcloud beta pam grants create
コマンドは、権限付与をリクエストします。
後述のコマンドデータを使用する前に、次のように置き換えます。
ENTITLEMENT_ID
: 権限付与を作成する利用資格 ID。GRANT_DURATION
: リクエストされた権限付与の期間(秒単位)。JUSTIFICATION
: 権限付与をリクエストする理由。EMAIL_ADDRESS
: 省略可。権限付与リクエストを通知する追加のメールアドレス。承認者に関連付けられている Google ID には自動的に通知されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。RESOURCE_TYPE
: 省略可。利用資格が属するリソースタイプ。値organization
、folder
、またはproject
を使用します。RESOURCE_ID
:RESOURCE_TYPE
とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud beta pam grants create \ --entitlement=ENTITLEMENT_ID \ --requested-duration="GRANT_DURATIONs" \ --justification="JUSTIFICATION" \ --location=global \ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \ --RESOURCE_TYPE=RESOURCE_ID
Windows(PowerShell)
gcloud beta pam grants create ` --entitlement=ENTITLEMENT_ID ` --requested-duration="GRANT_DURATIONs" ` --justification="JUSTIFICATION" ` --location=global ` [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ` --RESOURCE_TYPE=RESOURCE_ID
Windows(cmd.exe)
gcloud beta pam grants create ^ --entitlement=ENTITLEMENT_ID ^ --requested-duration="GRANT_DURATIONs" ^ --justification="JUSTIFICATION" ^ --location=global ^ [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^ --RESOURCE_TYPE=RESOURCE_ID
次のようなレスポンスが返されます。
Created [GRANT_ID].
REST
Privileged Access Manager API の createGrant
メソッドは、権限付与をリクエストします。
リクエストのデータを使用する前に、次のように置き換えます。
SCOPE
: 利用資格が含まれる組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_ID
、folders/FOLDER_ID
、またはprojects/PROJECT_ID
の形式です。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。ENTITLEMENT_ID
: 権限付与を作成する利用資格 ID。REQUEST_ID
: 省略可。ゼロ以外の UUID である必要があります。サーバーがリクエスト ID を含むリクエストを受信すると、その ID を含む別のリクエストが過去 60 分以内に完了しているかどうかを確認します。その場合、新しいリクエストは無視されます。GRANT_DURATION
: リクエストされた権限付与の期間(秒単位)。JUSTIFICATION
: 権限付与をリクエストする理由。EMAIL_ADDRESS
: 省略可。権限付与リクエストを通知する追加のメールアドレス。承認者に関連付けられている Google ID には自動的に通知されます。ただし、特に Workforce Identity 連携を使用している場合は、別のメールアドレスのセットに通知することもできます。
HTTP メソッドと URL:
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID
リクエストの本文(JSON):
{ "requestedDuration": "GRANT_DURATIONs", "justification": { "unstructuredJustification": "JUSTIFICATION" }, "additionalEmailRecipients": [ "EMAIL_ADDRESS_1", "EMAIL_ADDRESS_2", ... ] }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T03:08:49.330577625Z", "requester": "bola@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "APPROVAL_AWAITED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "alex@example.com" ] }
権限付与リクエストのステータスを確認する
gcloud
had-created
呼び出し元の関係で使用される gcloud beta pam grants search
コマンドは、作成した権限付与を検索します。ステータスを確認するには、レスポンスで state
フィールドを探します。
後述のコマンドデータを使用する前に、次のように置き換えます。
ENTITLEMENT_ID
: 権限付与の利用資格の ID。RESOURCE_TYPE
: 省略可。利用資格が属するリソースタイプ。値organization
、folder
、またはproject
を使用します。RESOURCE_ID
:RESOURCE_TYPE
とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud beta pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=had-created \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows(PowerShell)
gcloud beta pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=had-created ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows(cmd.exe)
gcloud beta pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=had-created ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
次のようなレスポンスが返されます。
additionalEmailRecipients: - bola@example.com createTime: '2024-03-07T00:34:32.557017289Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 3600s requester: cruz@example.com state: DENIED timeline: events: - eventTime: '2024-03-07T00:34:32.793769042Z' requested: expireTime: '2024-03-08T00:34:32.793769042Z' - denied: actor: alex@example.com reason: Issue has already been resolved eventTime: '2024-03-07T00:36:08.309116203Z' updateTime: '2024-03-07T00:34:32.926967128Z'
権限付与のステータスは次のとおりです。
ステータス | 説明 |
---|---|
ACTIVATING | 権限付与の有効化中です。 |
ACTIVATION_FAILED | 再取得できないエラーのため、Privileged Access Manager がロールを付与できませんでした。 |
ACTIVE | 権限付与が有効で、プリンシパルがロールで許可されているリソースにアクセスできます。 |
APPROVAL_AWAITED | 権限付与リクエストは、承認者の決定を待機しています。 |
DENIED | 承認者が権限付与リクエストを拒否しました。 |
ENDED | 権限付与が終了し、プリンシパルからロールが削除されました。 |
EXPIRED | 24 時間以内に承認されなかったため、権限付与リクエストが期限切れになりました。 |
REVOKED | 権限付与が取り消され、プリンシパルはロールで許可されているリソースにアクセスできなくなります。 |
REVOKING | 権限付与の取り消し中です。 |
REST
Privileged Access Manager API の searchGrants
メソッドは、HAD_CREATED
呼び出し元の関係で使用され、作成した権限を検索します。ステータスを確認するには、レスポンスで state
フィールドを探します。
リクエストのデータを使用する前に、次のように置き換えます。
SCOPE
: 利用資格が含まれる組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_ID
、folders/FOLDER_ID
、またはprojects/PROJECT_ID
の形式です。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。ENTITLEMENT_ID
: 権限付与の利用資格の ID。FILTER
: 省略可。フィールド値が AIP-160 式と一致する権限付与を返します。PAGE_SIZE
: 省略可。レスポンスで返すアイテムの数。PAGE_TOKEN
: 省略可。前のレスポンスで返されたページトークンを使用して、レスポンスの開始ページを指定します。
HTTP メソッドと URL:
GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "grants": [ { "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T03:08:49.625874598Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "APPROVAL_AWAITED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@google.com" ] } ] }
権限付与ステータスの詳細は次の表をご覧ください。
ステータス | 説明 |
---|---|
ACTIVATING | 権限付与の有効化中です。 |
ACTIVATION_FAILED | 再取得できないエラーのため、Privileged Access Manager がロールを付与できませんでした。 |
ACTIVE | 権限付与が有効で、プリンシパルがロールで許可されているリソースにアクセスできます。 |
APPROVAL_AWAITED | 権限付与リクエストは、承認者の決定を待機しています。 |
DENIED | 承認者が権限付与リクエストを拒否しました。 |
ENDED | 権限付与が終了し、プリンシパルからロールが削除されました。 |
EXPIRED | 24 時間以内に承認されなかったため、権限付与リクエストが期限切れになりました。 |
REVOKED | 権限付与が取り消され、プリンシパルはロールで許可されているリソースにアクセスできなくなります。 |
REVOKING | 権限付与の取り消し中です。 |