本頁說明如何查看、解讀及套用專案、資料夾和機構的角色建議。角色建議可協助您強制執行最小權限原則,確保主體只會有實際所需的權限。
事前準備
如果 IAM 和 Recommender API 尚未啟用,請啟用這些 API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。瞭解角色建議。
請參閱「角色建議最佳做法」。
選用:如要查看及管理非基本和自訂角色的角色建議,請確認您已在組織或專案層級啟用 Security Command Center 的 Premium 或 Enterprise 方案。詳情請參閱「帳單問題」。
設定驗證方法。
選取這個頁面上您打算如何使用範例的分頁:
gcloud
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要的 IAM 角色
本節說明使用角色建議時所需的 IAM 角色和權限。
查看建議
如要取得查看角色建議所需的權限,請要求管理員在您要查看建議的資源 (專案、資料夾或組織) 中,授予您下列 IAM 角色:
- 角色檢視者 (
roles/iam.roleViewer) - IAM 建議工具檢視者 (
roles/recommender.iamViewer) -
如要在 Google Cloud 控制台中查看專案層級的建議,您必須具備「專案 IAM 管理員」 (
roles/resourcemanager.projectIamAdmin) 角色。 -
如要在 Google Cloud 控制台中查看資料夾層級的建議,請執行下列操作:
資料夾 IAM 管理員 (
roles/resourcemanager.folderIamAdmin) -
如要在 Google Cloud 控制台中查看機構層級的建議:機構管理員 (
roles/resourcemanager.organizationAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備查看角色建議所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要查看角色建議,必須具備下列權限:
-
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 控制台中查看建議,請執行下列指令:
resourcemanager.RESOURCE.getIamPolicy,其中RESOURCE是要查看建議的資源類型 (projects、folders或organizations)
套用及關閉最佳化建議
如要取得查看、套用及關閉角色建議所需的權限,請要求管理員在您要管理建議的資源 (專案、資料夾或組織) 中,授予您下列 IAM 角色:
- 角色檢視者 (
roles/iam.roleViewer) - IAM 推薦功能管理員 (
roles/recommender.iamAdmin) -
如要管理專案層級的建議,您必須具備「專案 IAM 管理員 」(
roles/resourcemanager.projectIamAdmin) 角色。 -
如要管理資料夾層級的建議:
資料夾 IAM 管理員 (
roles/resourcemanager.folderIamAdmin) -
如要管理機構層級的建議:
機構管理員 (
roles/resourcemanager.organizationAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備查看、套用及關閉角色建議所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要查看、套用及關閉角色建議,必須具備下列權限:
-
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 查看及套用建議。
控制台
前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
選取專案、資料夾或機構。
在有權存取專案的主體清單中,找出「安全性深入分析」欄。
這個資料欄會顯示主體獲派的每個角色相關安全洞察資訊。這些深入分析資訊會突顯主體存取資源的模式,舉例來說,部分洞察資訊會醒目顯示過多的權限,或是主體不需要的權限。其他洞察資料會突顯具有橫向移動能力的服務帳戶:

如果有可用的建議來解決洞察資料問題,控制台會顯示「有可用的建議」Google Cloud 圖示。
如有建議可供查看,請按一下「有建議」 圖示,瞭解建議的詳細資料。
如果建議是替換角色,角色建議一律會提供一組可套用的預先定義角色。
在某些情況下,角色建議也會建議在專案層級建立新的自訂角色。如有自訂角色建議, Google Cloud 控制台預設會顯示。如要改用建議的預先定義角色,請按一下「查看建議的預先定義角色」。
只有權限過高的群組主體,才能使用 Privileged Access Manager,以隨需暫時存取權取代永久存取權 (預覽版)。如果群組成員不需要永久存取角色的權限,但日後可能因未預期的原因需要存取,您可以移除他們的永久存取權,並使用 Privileged Access Manager 允許他們在需要時要求臨時存取權。如要瞭解如何使用 Privileged Access Manager 修正過多的權限,請參閱「使用 Privileged Access Manager 修正過多的權限」。
請仔細查看建議,並確認您瞭解上次重新整理的時間,以及這項建議會如何變更主體對Google Cloud 資源的存取權。除非是服務代理程式的最佳化建議,否則最佳化建議絕不會提高主體的存取層級。詳情請參閱「角色建議的產生方式」。
如要瞭解如何在控制台中查看建議,請參閱本頁的「查看建議」一節。
選用:如果建議是建立自訂角色,請視需要更新「名稱」、「說明」、「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 為數字,例如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:建議的專屬 ID。這項值會顯示在最佳化建議的「name」欄位結尾。在上述範例中,ID 為fb927dc1-9695-4436-0000-f0f285007c0f。 -
RESOURCE_TYPE:要管理建議的資源類型。請使用project、folder或organization值。 -
RESOURCE_ID:您要管理建議的 Google Cloud專案、資料夾或機構 ID。專案 ID 是英數字串,例如my-project。資料夾和機構 ID 為數字,例如123456789012。 -
FORMAT:回應格式。使用json或yaml。 -
ETAG:建議中etag欄位的值,例如"dd0686e7136a4cbb"。請注意,這個值可以包含引號。 -
STATE_METADATA:選用。以半形逗號分隔的鍵/值組合,內含您選擇的建議相關中繼資料。例如--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:建議的專屬 ID。這項值會顯示在最佳化建議的「name」欄位結尾。在上述範例中,ID 為fb927dc1-9695-4436-0000-f0f285007c0f。 -
RESOURCE_TYPE:要管理建議的資源類型。請使用project、folder或organization值。 -
RESOURCE_ID:您要管理建議的 Google Cloud專案、資料夾或機構 ID。專案 ID 是英數字串,例如my-project。資料夾和機構 ID 為數字,例如123456789012。 -
FORMAT:回應格式。使用json或yaml。 -
ETAG:建議中etag欄位的值,例如"dd0686e7136a4cbb"。請注意,這個值可以包含引號。 -
STATE_METADATA:選用。以半形逗號分隔的鍵/值組合,內含您選擇的建議相關中繼資料。例如--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
查看最佳化建議:
如要列出專案、資料夾或機構的所有可用最佳化建議,請使用 Recommender API 的 recommendations.list 方法。
使用任何要求資料之前,請先修改下列項目的值:
RESOURCE_TYPE:要管理建議的資源類型。請使用projects、folders或organizations值。RESOURCE_ID:您要管理建議的Google Cloud 專案、資料夾或組織 ID。 專案 ID 是英數字串,例如my-project。資料夾和機構 ID 為數字,例如123456789012。-
PAGE_SIZE:選用。這項要求傳回的結果數上限。如未指定,伺服器會決定要傳回的結果數量。如果建議數量大於頁面大小,回應會包含分頁符記,可用於擷取下一頁結果。 -
PAGE_TOKEN:選用。這個方法先前回應中傳回的分頁符記。如果指定了這項參數,建議清單就會從上一個要求結束的位置開始。 -
FILTER:選用。篩選運算式,用於限制傳回的建議。您可以根據「stateInfo.state」欄位篩選最佳化建議。例如stateInfo.state:"DISMISSED"或stateInfo.state:"FAILED"。 PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 是英數字元字串,例如my-project。
HTTP 方法和網址:
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) 的任何權限。因此,建議工具會建議您撤銷角色:
{
"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 為數字,例如123456789012。RECOMMENDATION_ID:建議的專屬 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:選用。物件,其中包含鍵/值組合,以及您選擇的建議中繼資料。例如:{"reviewedBy": "alice", "priority": "high"}。中繼資料會取代建議中的stateInfo.stateMetadata欄位。PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 是英數字元字串,例如my-project。
HTTP 方法和網址:
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 為數字,例如123456789012。RECOMMENDATION_ID:建議的專屬 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:選用。物件,其中包含鍵/值組合,以及您選擇的建議中繼資料。例如:{"reviewedBy": "alice", "priority": "high"}。中繼資料會取代建議中的stateInfo.stateMetadata欄位。PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 是英數字元字串,例如my-project。
HTTP 方法和網址:
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 為數字,例如123456789012。RECOMMENDATION_ID:建議的專屬 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:選用。物件,其中包含鍵/值組合,以及您選擇的建議中繼資料。例如:{"reviewedBy": "alice", "priority": "high"}。中繼資料會取代建議中的stateInfo.stateMetadata欄位。PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 是英數字元字串,例如my-project。
HTTP 方法和網址:
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" }
瞭解最佳化建議
每項建議都包含相關資訊,協助您瞭解提出建議的原因。
控制台
為協助您瞭解系統提出這項建議的原因,Google Cloud 控制台會顯示主體的權限用量,這項資訊是由與建議相關聯的政策洞察回報。例如,系統可能會顯示如下清單:

為協助您瞭解套用建議的影響,Google Cloud 控制台也會顯示以顏色和符號標示的權限清單。這份清單會顯示套用建議後,主體的權限會如何變更。例如,系統可能會顯示如下清單:

各顏色和符號代表的權限類型如下:
灰色,沒有符號:主體目前角色和建議角色都有的權限。

紅色並附上減號 :主體目前角色中的權限,但不在建議角色中,因為主體過去 90 天內未曾使用這些權限。

綠色加號 :主體目前角色沒有的權限,但建議角色有。這類權限只會顯示在服務代理商的建議中。

藍色,並顯示「機器學習」圖示 : 主體的目前角色和建議角色都有的權限。這並非因為主體在過去 90 天內使用過這些權限,而是因為 Recommender 透過機器學習判斷主體日後可能需要這些權限。

部分建議也與橫向移動深入分析相關聯。橫向移動洞察資料會找出相關角色,讓某個專案中的服務帳戶模擬其他專案中的服務帳戶。如果建議與橫向移動深入分析相關聯, 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 控制台。
如果您還原建議,將永久存取權換成臨時存取權,系統會還原原始 IAM 繫結,並刪除建立的 Privileged Access Manager 授權。如果還原程序失敗,請手動刪除授權。
如要還原已關閉的建議,請按一下「還原」。建議會顯示在Google Cloud 控制台的「IAM」頁面。角色或權限不會變更。
後續步驟
- 進一步瞭解 Recommender。
- 瞭解如何使用允許政策洞察。
- 瞭解如何使用橫向移動深入分析。