このページでは、プロジェクト、フォルダ、組織に対するロールの推奨事項を表示、確認、適用する方法について説明します。ロールの推奨事項により、プリンシパルが実際に必要な権限のみを持つようにすることで、最小権限の原則を徹底できます。
準備
Enable the IAM and Recommender APIs.
ロールに関する推奨事項について理解する。
ロールの推奨事項のベスト プラクティスを確認する。
省略可: 基本ロール以外とカスタムロールのロール推奨事項を表示および管理する場合は、Security Command Center のプレミアム ティアが組織レベルで有効になっていることを確認してください。詳細については、お支払いについてをご覧ください。
必要な IAM のロール
このセクションでは、ロールの推奨事項が機能するために必要な IAM のロールと権限について説明します。
推奨事項を表示する
ロールの推奨事項を表示するために必要な権限を取得するには、推奨事項を表示するリソース(プロジェクト、フォルダ、組織)に対して次の IAM ロールを付与するように管理者に依頼してください。
-
ロールの閲覧者(
roles/iam.roleViewer
) -
IAM Recommender の閲覧者(
roles/recommender.iamViewer
) - Google Cloud コンソールでプロジェクト レベルの推奨事項を表示する: プロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin
) - Google Cloud コンソールでフォルダレベルの推奨事項を表示する: フォルダ IAM 管理者(
roles/resourcemanager.folderIamAdmin
) -
Google Cloud コンソールで組織レベルの推奨事項を表示する: 組織管理者(
roles/resourcemanager.organizationAdmin
)
ロールの付与の詳細については、アクセスの管理をご覧ください。
これらの事前定義ロールには、ロールの推奨事項の表示に必要な権限が含まれています。必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。
必要な権限
ロールの推奨事項を表示するには、次の権限が必要です。
-
iam.roles.get
-
iam.roles.list
-
recommender.iamPolicyRecommendations.get
-
recommender.iamPolicyRecommendations.list
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
recommender.iamPolicyLateralMovementInsights.get
-
recommender.iamPolicyLateralMovementInsights.list
-
Google Cloud Console で推奨事項を表示するには、
resourcemanager.RESOURCE.getIamPolicy
を使用します。ここで、RESOURCE
は推奨事項を表示するリソースタイプ(projects
、folders
、organizations
)です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
推奨事項の適用と拒否
ロールの推奨事項を表示、適用、拒否するために必要な権限を取得するには、推奨事項を管理するリソース(プロジェクト、フォルダ、または組織)に対して次の IAM ロールを付与するように管理者に依頼してください。
-
ロールの閲覧者(
roles/iam.roleViewer
) -
IAM Recommender の管理者(
roles/recommender.iamAdmin
) - プロジェクト レベルの推奨事項を管理する: プロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin
) - フォルダレベルの推奨事項を管理する: フォルダ IAM 管理者(
roles/resourcemanager.folderIamAdmin
) -
組織レベルの推奨事項を管理する: 組織管理者(
roles/resourcemanager.organizationAdmin
)
ロールの付与の詳細については、アクセスの管理をご覧ください。
これらの事前定義ロールには、ロールの推奨事項の表示、適用、拒否に必要な権限が含まれています。必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。
必要な権限
ロールの推奨事項を表示、適用、拒否するには、次の権限が必要です。
-
iam.roles.get
-
iam.roles.list
-
recommender.iamPolicyRecommendations.get
-
recommender.iamPolicyRecommendations.list
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
recommender.iamPolicyLateralMovementInsights.get
-
recommender.iamPolicyLateralMovementInsights.list
-
recommender.iamPolicyRecommendations.update
-
resourcemanager.RESOURCE.getIamPolicy
。ここで、RESOURCE
は推奨事項を管理するリソースタイプ(projects
、folders
、またはorganizations
)です。 -
resourcemanager.RESOURCE.setIamPolicy
。ここで、RESOURCE
は推奨事項を管理するリソースタイプ(projects
、folders
、またはorganizations
)です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
推奨事項の確認と適用
Google Cloud コンソールを使用すると、推奨事項を最も簡単に確認して適用できます。また、推奨事項を適用するときにカスタムロールを自動的に作成する場合は、Google Cloud コンソールを使用する必要があります。
また、推奨事項を確認して適用するには、Google Cloud CLI と Recommender API を使用します。
Console
Google Cloud コンソールの [IAM] ページに移動します。
プロジェクト、フォルダ、または組織を選択します。
プロジェクトにアクセスできるプリンシパルのリストで、[セキュリティ分析情報] 列を見つけます。
この列には、プリンシパルに付与された各ロールのセキュリティ関連の分析情報が表示されます。これらの分析情報には、リソースに対するプリンシパルのアクセス パターンが示されます。たとえば、一部の分析情報では、過剰な権限、すなわちプリンシパルが必要としない権限がハイライト表示されます。他の分析情報では、ラテラル ムーブメント機能を持つサービス アカウントがハイライト表示されます。
分析結果に対する推奨事項がある場合は、Google Cloud コンソールに アイコン(利用可能な推奨事項)が表示されます。
確認する推奨事項がある場合は、推奨されるロールの置き換え アイコンをクリックすると、推奨事項の詳細が表示されます。
ロールの置き換えが推奨されている場合、ロールの推奨事項は、適用可能な事前定義ロール群を必ず提案します。
場合によっては、ロールの推奨事項はプロジェクト レベルで新しいカスタムロールを作成することも提案します。カスタムロールの推奨事項がある場合は、Google Cloud コンソールにデフォルトで表示されます。事前定義ロールの推奨事項に切り替えるには、[おすすめの事前定義ロールを見る] をクリックします。
推奨事項をよく確認し、プリンシパルによる Google Cloud リソースへのアクセス権がどのように変わるかを確認してください。サービス エージェントへの推奨事項を除き、推奨事項によってプリンシパルのアクセスレベルが向上することはありません。詳細については、ロール推奨事項の生成方法をご覧ください。
Console で推奨事項を確認する方法については、このページの推奨事項の確認をご覧ください。
(省略可)カスタムロールを作成する推奨事項の場合は、必要に応じて、タイトル、説明、ID、ロールのリリース ステージを更新します。
カスタムロールに権限を追加する必要がある場合は、[権限を追加] をクリックします。
カスタムロールから権限を削除する必要がある場合は、削除する各権限のチェックボックスをオフにします。
推奨事項に基づいて対処します。
推奨事項を適用するには、[適用] または [作成して適用] をクリックします。90 日以内に変更したい場合は、推奨事項の履歴を使用して選択を元に戻してください。
推奨事項を閉じるには、[閉じる] をクリックして選択した内容を確認します。推奨事項が有効になっていれば、非表示にした推奨事項を復元できます。
前の手順を繰り返し、すべての推奨事項を確認します。
gcloud
推奨事項を確認する:
推奨事項を表示するには、gcloud recommender recommendations list
コマンドを実行します。
gcloud recommender recommendations list \
--location=global \
--recommender=google.iam.policy.Recommender \
--RESOURCE_TYPE=RESOURCE_ID \
--format=json
次の値を置き換えてください。
RESOURCE_TYPE
: 推奨事項を一覧表示する対象のリソースタイプ。値project
、folder
、またはorganization
を使用します。RESOURCE_ID
: 推奨事項を一覧表示する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。
レスポンスは次の例のようになります。この例では、サービス アカウントは過去 90 日間に Compute Admin ロール(roles/compute.admin
)の権限を使用していません。そのため、ロールの推奨事項により、次のロールは取り消しが提案されます。
[
{
"associatedInsights": [
{
"insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839"
}
],
"content": {
"operationGroups": [
{
"operations": [
{
"action": "remove",
"path": "/iamPolicy/bindings/*/members/*",
"pathFilter": {
"/iamPolicy/bindings/*/condition/expression": "",
"/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com",
"/iamPolicy/bindings/*/role": "roles/compute.admin"
},
"resource": "//cloudresourcemanager.googleapis.com/projects/example-project",
"resourceType": "cloudresourcemanager.googleapis.com/Project"
}
]
}
]
},
"description": "This role has not been used during the observation window.",
"recommenderSubtype": "REMOVE_ROLE",
"etag": "\"770237e2c0decf40\"",
"lastRefreshTime": "2020-01-09T06:06:17Z",
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
"primaryImpact": {
"category": "SECURITY",
"securityProjection": {
"details": {
"revokedIamPermissionsCount": 708
}
}
},
"priority": "P4",
"stateInfo": {
"state": "ACTIVE"
}
}
]
推奨事項を慎重に確認し、それによってプリンシパルの Google Cloud リソースへのアクセスがどのように変化するかを見極めてください。gcloud CLI から推奨事項を確認する方法については、このページの推奨事項を確認するをご覧ください。
推奨事項を適用するには:
gcloud recommender recommendations mark-claimed
コマンドを使用して、推奨事項の状態をCLAIMED,
に変更します。これにより、推奨事項を適用している間は変更できなくなります。gcloud recommender recommendations mark-claimed \ RECOMMENDATION_ID \ --location=global \ --recommender=google.iam.policy.Recommender \ --RESOURCE_TYPE=RESOURCE_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
次の値を置き換えてください。
-
RECOMMENDATION_ID
: レコメンデーションの一意の識別子。この値は、レコメンデーションのname
フィールドの最後に表示されます。上記の例では、ID はfb927dc1-9695-4436-0000-f0f285007c0f
です。 -
RESOURCE_TYPE
: 推奨事項を管理する対象のリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。 -
FORMAT
: レスポンスの形式。json
またはyaml
を使用してください。 -
ETAG
: レコメンデーションのetag
フィールドの値("dd0686e7136a4cbb"
など)。この値には引用符を含めることができます。 -
STATE_METADATA
: 省略可。レコメンデーションに関する任意のメタデータを含むカンマで区切られた Key-Value ペア。たとえば、--state-metadata=reviewedBy=alice,priority=high
です。メタデータにより、レコメンデーションのstateInfo.stateMetadata
フィールドが置き換わります。
コマンドが成功した場合、レスポンスは次の例のように
CLAIMED
ステータスにレコメンデーションを表示します。この例では、わかりやすくするためにほとんどのフィールドを省略しています。[ { "description": "This role has not been used during the observation window.", "recommenderSubtype": "REMOVE_ROLE", "etag": "\"df7308cca9719dcc\"", "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "stateInfo": { "state": "CLAIMED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } } } ]
-
プロジェクトの許可ポリシーを取得して、推奨事項が反映されるように許可ポリシーを変更および設定します。
レコメンデーションを適用できた場合はレコメンデーションのステータスを
SUCCEEDED
に更新し、レコメンデーションを適用できない場合はFAILED
に更新します。gcloud recommender recommendations COMMAND \ RECOMMENDATION_ID \ --location=global \ --recommender=google.iam.policy.Recommender \ --RESOURCE_TYPE=RESOURCE_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
次の値を置き換えてください。
COMMAND
: レコメンデーションを適用できた場合はmark-succeeded
を使用し、レコメンデーションを適用できなかった場合はmark-failed
を使用します。-
RECOMMENDATION_ID
: レコメンデーションの一意の識別子。この値は、レコメンデーションのname
フィールドの最後に表示されます。上記の例では、ID はfb927dc1-9695-4436-0000-f0f285007c0f
です。 -
RESOURCE_TYPE
: 推奨事項を管理する対象のリソースタイプ。値project
、folder
、またはorganization
を使用します。 -
RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。 -
FORMAT
: レスポンスの形式。json
またはyaml
を使用してください。 -
ETAG
: レコメンデーションのetag
フィールドの値("dd0686e7136a4cbb"
など)。この値には引用符を含めることができます。 -
STATE_METADATA
: 省略可。レコメンデーションに関する任意のメタデータを含むカンマで区切られた Key-Value ペア。たとえば、--state-metadata=reviewedBy=alice,priority=high
です。メタデータにより、レコメンデーションのstateInfo.stateMetadata
フィールドが置き換わります。
たとえば、レコメンデーションを「完了」に設定した場合、レスポンスにより
SUCCEEDED
ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。[ { "description": "This role has not been used during the observation window.", "recommenderSubtype": "REMOVE_ROLE", "etag": "\"dd0686e7136a4cbb\"", "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } } } ]
REST
この手順は、ユーザーが認証済みで、GOOGLE_APPLICATION_CREDENTIALS
環境変数が設定されていることを前提としています。
推奨事項を確認する:
プロジェクト、フォルダ、または組織で利用可能なすべての推奨事項を一覧表示するには、Recommender API の recommendations.list
メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 推奨事項を管理するリソースタイプ。値projects
、folders
、またはorganizations
を使用します。RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。-
PAGE_SIZE
: 省略可。このリクエストから返される結果の最大数。指定しなかった場合、サーバーが結果数を決定します。推奨事項の数がページサイズより大きい場合、レスポンスにページ設定トークンが含まれます。このトークンを使用して、結果の次のページを取得できます。 -
PAGE_TOKEN
: 省略可。以前のレスポンスでこのメソッドから返されたページ設定トークン。指定すると、前のリクエストが終了した時点から推奨事項のリストが開始します。 -
FILTER
: 省略可。返される推奨事項を制限するフィルタ式。stateInfo.state
フィールドに基づいて推奨事項をフィルタできます。たとえば、stateInfo.state:"DISMISSED"
やstateInfo.state:"FAILED"
です。 PROJECT_ID
: Google Cloud プロジェクト IDプロジェクト ID は英数字からなる文字列です(例:my-project
)。
HTTP メソッドと URL:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスは次の例のようになります。この例では、プロジェクト example-project
のサービス アカウントは過去 90 日間に Compute 管理者ロール(roles/compute.admin
)の権限を使用していません。そのため、Recommender により、次のロールの取り消しが提案されます。
{ "recommendations": [ "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2020-01-09T06:06:17Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 708 } } }, "priority": "P4", "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilter": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/compute.admin" }, "resource": "//cloudresourcemanager.googleapis.com/projects/example-project", "resourceType": "cloudresourcemanager.googleapis.com/Project" } ] } ] }, "stateInfo": { "state": "ACTIVE" } "etag": "\"770237e2c0decf40\"", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839" } ] }
推奨事項を慎重に確認し、それによってプリンシパルの Google Cloud リソースへのアクセスがどのように変化するかを見極めてください。REST API から推奨事項を確認する方法については、このページの推奨事項を確認するをご覧ください。
推奨事項を適用するには:
レコメンデーションを
CLAIMED
とマークします。推奨事項を
CLAIMED
としてマークし、適用中に推奨事項を変更できないようにするには、Recommender API のrecommendations.markClaimed
メソッドを使用します。リクエストのデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 推奨事項を管理するリソースタイプ。値projects
、folders
、またはorganizations
を使用します。RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。RECOMMENDATION_ID
: 推奨事項の一意の識別子。この値は、レコメンデーションのname
フィールドの最後に表示されます。たとえば、name
フィールドがprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
の場合、レコメンデーション ID はfb927dc1-9695-4436-0000-f0f285007c0f
です。ETAG
: レコメンデーションのetag
フィールドの値("dd0686e7136a4cbb"
など)。バックスラッシュを使用して引用符をエスケープします(例:"\"df7308cca9719dcc\""
)。STATE_METADATA
: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例:{"reviewedBy": "alice", "priority": "high"}
メタデータにより、レコメンデーションのstateInfo.stateMetadata
フィールドが置き換わります。PROJECT_ID
: Google Cloud プロジェクト IDプロジェクト ID は英数字からなる文字列です(例:my-project
)。
HTTP メソッドと URL:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed
リクエストの本文(JSON):
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスでは、次の例のように
CLAIMED
ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "CLAIMED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
レコメンデーションを適用できた場合はレコメンデーションのステータスを
SUCCEEDED
に更新し、レコメンデーションを適用できない場合はFAILED
に更新します。SUCCEEDED
推奨事項を
SUCCEEDED
としてマークして、適用可能であることを示すには、Recommender API のrecommendations.markSucceeded
メソッドを使用します。リクエストのデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 推奨事項を管理するリソースタイプ。値projects
、folders
、またはorganizations
を使用します。RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。RECOMMENDATION_ID
: 推奨事項の一意の識別子。この値は、レコメンデーションのname
フィールドの最後に表示されます。たとえば、name
フィールドがprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
の場合、レコメンデーション ID はfb927dc1-9695-4436-0000-f0f285007c0f
です。ETAG
: レコメンデーションのetag
フィールドの値("dd0686e7136a4cbb"
など)。バックスラッシュを使用して引用符をエスケープします(例:"\"df7308cca9719dcc\""
)。STATE_METADATA
: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例:{"reviewedBy": "alice", "priority": "high"}
メタデータにより、レコメンデーションのstateInfo.stateMetadata
フィールドが置き換わります。PROJECT_ID
: Google Cloud プロジェクト IDプロジェクト ID は英数字からなる文字列です(例:my-project
)。
HTTP メソッドと URL:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded
リクエストの本文(JSON):
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスでは、次の例のように
SUCCEEDED
ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
FAILED
推奨事項を適用できなかったことを示す
FAILED
とマークするには、Recommender API のrecommendations.markFailed
メソッドを使用します。リクエストのデータを使用する前に、次のように置き換えます。
RESOURCE_TYPE
: 推奨事項を管理するリソースタイプ。値projects
、folders
、またはorganizations
を使用します。RESOURCE_ID
: 推奨事項を管理する対象の Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。フォルダ ID と組織 ID は数値です(例:123456789012
)。RECOMMENDATION_ID
: 推奨事項の一意の識別子。この値は、レコメンデーションのname
フィールドの最後に表示されます。たとえば、name
フィールドがprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
の場合、レコメンデーション ID はfb927dc1-9695-4436-0000-f0f285007c0f
です。ETAG
: レコメンデーションのetag
フィールドの値("dd0686e7136a4cbb"
など)。バックスラッシュを使用して引用符をエスケープします(例:"\"df7308cca9719dcc\""
)。STATE_METADATA
: 省略可。レコメンデーションに関する任意のメタデータと Key-Value ペアを含むオブジェクト。例:{"reviewedBy": "alice", "priority": "high"}
メタデータにより、レコメンデーションのstateInfo.stateMetadata
フィールドが置き換わります。PROJECT_ID
: Google Cloud プロジェクト IDプロジェクト ID は英数字からなる文字列です(例:my-project
)。
HTTP メソッドと URL:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed
リクエストの本文(JSON):
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスでは、次の例のように
FAILED
ステータスにレコメンデーションが表示されます。この例では、わかりやすくするためにほとんどのフィールドを省略しています。{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "FAILED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
推奨事項について
各推奨事項には、それが作られた理由の理解に役立つ情報が含まれます。
Console
推奨事項が作られた理由を理解できるように、Google Cloud コンソールには、推奨事項に関連付けられたポリシーの分析情報によって報告されたプリンシパルの権限の使用状況が表示されます。たとえば、次のようなリストが表示されます。
推奨事項の適用による影響を容易に把握するため、Google Cloud コンソールでは、権限のリストを色と記号で分類して表示します。このリストは、推奨事項を適用した場合にプリンシパルの権限がどのように変化するかを示しています。たとえば、次のようなリストが表示されます。
それぞれの色と記号に関連付けられている権限の種類は次のとおりです。
グレー、記号なし: プリンシパルの現在のロールと推奨されるロールの両方に含まれる権限。
赤、マイナス記号
付き: プリンシパルの現在のロールに含まれている権限のうち、過去 90 日間に使用されなかったため推奨ロールに含まれない権限。緑、プラス記号サービス エージェントへの推奨事項にのみ表示されます。
: プリンシパルの現在のロールにはなく、推奨ロールには含まれる権限。この種類の権限は、青色、機械学習アイコン機械学習を通じて今後必要になると判断されたために推奨事項に含まれている権限。
付き: プリンシパルの現在のロールと推奨ロールの両方にある権限のうち、プリンシパルが過去 90 日間にその権限を使用したからではなく、
一部の推奨事項は、ラテラル ムーブメントの分析情報にも関連付けられています。ラテラル ムーブメントの分析情報により、あるプロジェクトのサービス アカウントが別のプロジェクトのサービス アカウントの権限を借用することを許可するロールが特定されます。推奨事項がラテラル ムーブメントの分析情報に関連付けられている場合、Google Cloud コンソールには次のように表示されます。
サービス アカウントの元のプロジェクト: 権限を借用したサービス アカウントが作成されたプロジェクト。
このプロジェクトで権限借用されるサービス アカウント: 現在のプロジェクト内で、借用権限を持つサービス アカウントが権限を借用できるサービス アカウントすべてのリスト。
gcloud
推奨事項のフィールドの詳細については、Recommendation
リファレンスをご覧ください。
この推奨事項のベースとなる権限の使用状況を確認するには、推奨事項に関連付けられたポリシー分析情報を表示します。これらの分析情報は associatedInsights
フィールドにリストされています。推奨事項に関連付けられたポリシー分析情報を表示するには、次のようにします。
associatedInsights
フィールドのどの分析情報がポリシーの分析情報であるかを特定します。ポリシー分析情報の分析情報のタイプはgoogle.iam.policy.insight
です。このタイプは、insight
フィールドのinsightTypes
の後に表示されます。- ポリシー分析情報の ID をコピーします。ID は、
insight
フィールドのinsights/
より後の部分です。上の例では、分析情報 ID は279ef748-408f-44db-9a4a-1ff8865b9839
です。 - コピーした分析情報 ID を使用して、手順どおりに操作を行い、ポリシーの分析情報を取得します。
一部の推奨事項はラテラル ムーブメントの分析情報にも関連付けられています。これにより、プロジェクトのサービス アカウントに別のプロジェクトのサービス アカウントの権限借用を許可するロールを確認できます。これらの分析情報も associatedInsights
フィールドにリストされています。推奨事項に関連付けられたラテラル ムーブメントの分析情報を表示するには、次のようにします。
associatedInsights
フィールド内のどの分析情報が、ラテラル ムーブメントの分析情報であるかを確認します。ラテラル ムーブメントの分析情報のタイプはgoogle.iam.policy.LateralMovementInsight
です。このタイプは、insight
フィールドのinsightTypes
の後に表示されます。- ポリシー分析情報の ID をコピーします。ID は、
insight
フィールドのinsights/
より後の部分です。上の例では、分析情報 ID は279ef748-408f-44db-9a4a-1ff8865b9839
です。 - コピーした分析情報 ID を使用して、手順どおりに操作を行い、ラテラル ムーブメントの分析情報を取得します。
REST
推奨事項のフィールドの詳細については、Recommendation
リファレンスをご覧ください。
この推奨事項のベースとなる権限の使用状況を確認するには、推奨事項に関連付けられたポリシー分析情報を表示します。これらの分析情報は associatedInsights
フィールドにリストされています。推奨事項に関連付けられたポリシー分析情報を表示するには、次のようにします。
associatedInsights
フィールドのどの分析情報がポリシーの分析情報であるかを特定します。ポリシー分析情報の分析情報のタイプはgoogle.iam.policy.insight
です。このタイプは、insight
フィールドのinsightTypes
の後に表示されます。- ポリシー分析情報の ID をコピーします。ID は、
insight
フィールドのinsights/
より後の部分です。たとえば、insight
フィールドがprojects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839
の場合、分析情報 ID は279ef748-408f-44db-9a4a-1ff8865b9839
です。 - コピーした分析情報 ID を使用して、手順どおりに操作を行い、ポリシーの分析情報を取得します。
一部の推奨事項はラテラル ムーブメントの分析情報にも関連付けられています。これにより、プロジェクトのサービス アカウントに別のプロジェクトのサービス アカウントの権限借用を許可するロールを確認できます。これらの分析情報も associatedInsights
フィールドにリストされています。推奨事項に関連付けられたラテラル ムーブメントの分析情報を表示するには、次のようにします。
associatedInsights
フィールド内のどの分析情報が、ラテラル ムーブメントの分析情報であるかを確認します。ラテラル ムーブメントの分析情報のタイプはgoogle.iam.policy.LateralMovementInsight
です。このタイプは、insight
フィールドのinsightTypes
の後に表示されます。- ポリシー分析情報の ID をコピーします。ID は、
insight
フィールドのinsights/
より後の部分です。たとえば、insight
フィールドがprojects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
の場合、分析情報 ID は13088eec-9573-415f-81a7-46e1a260e860
です。 - コピーした分析情報 ID を使用して、手順どおりに操作を行い、ラテラル ムーブメントの分析情報を取得します。
変更を表示する / 元に戻す / 復元する
プロジェクト レベルのロール バインディングに対する推奨事項を適用または拒否すると、その操作が推奨事項履歴に表示されます。
推奨事項の履歴を表示するには:
Google Cloud コンソールの [IAM] ページに移動します。
プロジェクト、フォルダ、または組織を選択します。
画面上部の [推奨事項の履歴] をクリックします。
Google Cloud コンソールには、ロールの推奨事項に対する以前のアクションの一覧が表示されます。
推奨事項の詳細を表示するには、
展開矢印をクリックします。Google Cloud コンソールには、アクションを実行したプリンシパルを含む、実行されたアクションの詳細が表示されます。
(省略可)必要に応じて、レコメンデーションの変更の取り消しや、レコメンデーションを復元して、レコメンデーションを元に戻すことができます。
以前に適用した推奨事項の変更を元に戻すには、[元に戻す] をクリックします。Google Cloud コンソールでは、プリンシパルのロールの変更が元に戻されます。Google Cloud コンソールに推奨事項が表示されなくなります。
閉じた推奨事項を復元するには、[復元] をクリックします。推奨事項は、Google Cloud コンソールの IAM ページに表示されます。ロールや権限は変更されません。
次のステップ
- Recommender の詳細を確認する。
- 許可ポリシーの分析情報の使用方法を確認する。
- ラテラル ムーブメントの分析情報の使用方法を学習する。