Access Approval を使用してアクセスを承認する方法を説明します。まず、概要で説明されている Access Approval のコンセプトをよくご確認ください。
通知の受信
Access Approval のリクエストを受信するには、メールで受信するか、Pub/Sub を使用する(または両方同時に)かの 2 つの方法があります。
メールで受け取るには、クイックスタートのメール通知の設定セクションの手順を行います。
Pub/Sub を使用する手順は次のとおりです。
- リクエストを承認するプロジェクトに Pub/Sub でトピックを作成します。すべてのプロジェクトのリクエストを受信する 1 つの Pub/Sub トピックを作成することも、各プロジェクト内に別々の Pub/Sub トピックを作成することもできます。
- Google Cloud Console を使用して、承認サービス アカウントに Pub/Sub トピックの Pub/Sub パブリッシャーのロールを付与します。権限を付与する必要があるサービス アカウントは
customer-approval-jobs@system.gserviceaccount.com
です。 - Google Cloud サポートに連絡し、作成した 1 つまたは複数の Pub/Sub トピックの名前と、トピックが通知を受け取るプロジェクト / フォルダ / 組織 ID を伝えます。
これが完了すると、Access Approval のリクエストに対応する Pub/Sub トピックのメッセージの受信を開始します。
以下は、Access Approval のリクエストのサンプルです。
{
"name": "projects/123456/approvalRequests/xyzabc123",
"requestedResourceName": "projects/123456",
"requestedReason": {
"detail": "Case number: bar123"
"type": "CUSTOMER_INITIATED_SUPPORT"
},
"requestedLocations": {
"principalOfficeCountry": "US",
"principalPhysicalLocationCountry": "US"
},
"requestTime": "2018-08-28T19:07:12.286Z",
"requestedExpiration": "2018-09-02T19:07:11.877Z"
}
組織内のアクセス承認者の設定
プロジェクトの IAM 設定ページに移動します。
承認を実行するプリンシパル(サービス アカウントまたは人間)に、プロジェクト、フォルダ、または組織に対する IAM ロールのAccess Approvals Approver を付与します。
Access Approval リクエストの承認
Access Approval のリクエストを承認するには、次の手順に従います。
まず、プロジェクト、フォルダ、または組織に対する IAM ロールのAccess Approvals Approver があることを確認してください。
コンソール
- Google Cloud Console の [セキュリティ]セクションに移動し、[Access Approval] を選択して、現在のすべての承認リクエストを含むパネルを表示します。
- 承認リクエストとともに送信されたメールのリンクをクリックして、このページに移動することもできます。
- リクエストを承認するには、[承認] ボタンを押します。リクエストを拒否することもできますが、リクエストを拒否しなくてもアクセスは引き続き拒否されるので、省略することができます。
- リクエストが承認されると、リクエストは「承認済み」になります。承認に一致する特徴(たとえば、同じ妥当性、同じロケーション、デスクの場所)を持つ Google の従業員は、承認された時間枠内にアクセスできます。リクエストが承認されなかった場合、その Google の従業員のアクセスは拒否されます。リクエストを拒否しても、保留中のリクエストのリストから削除されるだけです。承認リクエストの拒否に失敗した場合は、アクセスは引き続き拒否されます。
cURL
- Pub/Sub メッセージから
approvalRequest
名を取得します。 その
approvalRequest
を承認または拒否する API 呼び出しを行います。# HTTP POST request with empty body (an effect of using -d '') # service-account-credential.json is attained by going to the # IAM -> Service Accounts menu in the cloud console and creating # a service account. curl -H "$(oauth2l header --json service-account-credentials.json cloud-platform)" \ -d '' https://accessapproval.googleapis.com/v1beta1/projects/[PROJECT_ID]/approvalRequests/[APPROVAL_REQUEST_ID]:approve
リクエストが承認されると、リクエストは「承認済み」になります。承認に一致する特徴(たとえば、同じ妥当性、同じロケーション、デスクの場所)を持つ Google の従業員は、承認された時間枠内にアクセスできます。
リクエストが承認されない場合、または拒否された場合、Google 社員のアクセスは拒否されます。
リクエストへの返信には、次のオプションがあります。
操作 | 効果 | Google のアクセス状態 |
---|---|---|
:approve | 承認リクエストを承認します。 | 承認前に拒否、承認後に承認。 |
:dismiss | 承認のリクエストを拒否します。このメカニズムは、フォローアップを許可するためにリクエストが却下されたことを Google 従業員に警告するため、何もしないよりも優先されます。 | 却下前に拒否、却下後に拒否。 |
なし | Google 社員のアクセスは引き続き拒否されます。requestedExpiration の期間が経過した後に Google 社員がリソースにアクセスするためには、新しいリクエストを開く必要があります。 | 対応する前に拒否、有効期限後に拒否。 |
過去の承認リクエストの一覧表示
コンソール
この機能は、Google Cloud Console ではまだご利用いただけません。Cloud Logging の Cloud Audit Logs にアクセスすることで、承認履歴を確認できます。プロジェクトで監査ロギングが有効になっている場合は、Audited Resource accessapproval.googleapis.com
でフィルタできます。
cURL
curl -H "$(oauth2l header --json service-account-credentials.json cloud-platform)" \
https://accessapproval.googleapis.com/v1beta1/projects/[PROJECT_ID]/approvalRequests?filter=ALL
デフォルトでは、API はすべての未承認のリクエストと承認された、有効期限内のリクエストを一覧表示します。却下されたすべてのリクエストを一覧表示するなどの処理を行うフィルタ パラメータがあります。詳しくは、API ドキュメントをご覧ください。
過去のアクセス承認とステータスのリストが表示されます。
{
"approvalRequests": [
{
"name": "projects/123456/approvalRequests/xyzabc123",
"requestedResourceName": "projects/123456",
"requestedReason": {
"detail": "Case number: bar123"
"type": "CUSTOMER_INITIATED_SUPPORT"
},
"requestedLocations": {
"principalOfficeCountry": "US",
"principalPhysicalLocationCountry": "US"
},
"requestTime": "2018-08-30T17:49:13.712Z",
"requestedExpiration": "2018-09-04T17:49:13.540Z",
"approve": {
"approveTime": "2018-08-30T17:49:15.737Z",
"expireTime": "2018-09-04T17:49:13.540Z"
}
}
]
}
次のステップ
- Access Approval の通知から除外されている Google のアクションを理解します。