政策摘要 (服務清單) - AWS Identity and Access Management

政策摘要 (服務清單)

政策摘要列於三個表中:政策摘要、服務摘要以及動作摘要政策摘要表包括由所選政策定義的服務清單和許可摘要。


      政策摘要圖表圖片描繪出 3 個表格與各自的關係

政策摘要表格是分成一或多個 Uncategorized services (未分類服務)、Explicit deny (明確拒絕)、以及 Allow (允許) 等部分。如果政策包含 IAM 無法辨識的服務,則該服務將包含在表格的 Uncategorized services (未分類服務) 部分中。如果 IAM 能夠辨識該服務,則它將包含在表格的 Explicit deny (明確拒絕) 或 Allow (允許) 部分中,取決於政策的效果 (DenyAllow)。

檢視政策摘要

您可以在 Users (使用者) 頁面上查看連接到使用者的任何政策的摘要。您可以在 Roles (角色) 頁面上查看連接到角色的任何政策的摘要。您可以在 Policies (政策) 頁面上檢視受管政策的政策摘要。如果您的政策不包含政策摘要,請參閱 缺少政策摘要 以了解原因。

Policies 頁面查看政策摘要

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在導覽窗格中,選擇 Policies (政策)。

  3. 在政策清單中,選擇您要檢視的政策名稱。

  4. 在政策的 Summary (摘要) 頁面上,檢視 Permissions (許可) 標籤來查看政策摘要。

查看連接到使用者的政策摘要

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 從導覽窗格選擇 Users (使用者)。

  3. 在使用者清單中,選擇要檢視其政策的使用者的名稱。

  4. 在使用者的 Summary (摘要) 頁面上,檢視 Permissions (許可) 標籤來查看直接連接到使用者或從群組連接的政策清單。

  5. 在使用者的政策表中,展開您要檢視的政策列。

查看連接到角色的政策摘要

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在導覽窗格中,選擇 Roles (角色)。

  3. 在角色清單中,選擇要檢視其政策的角色名稱。

  4. 在角色的 Summary (摘要) 頁面上,檢視 Permissions (許可) 標籤來查看直接連接到角色的政策清單。

  5. 在角色的政策表中,展開您要檢視的政策列。

編輯政策以修正警告

在查看政策摘要時,您可能會發現拼寫錯誤,或者注意到政策未提供所需的許可。您無法直接編輯政策摘要。不過,您可以使用視覺化政策編輯器編輯客戶託管政策,該編輯器會捕捉政策摘要報告中許多相同的錯誤和警告。然後,您可以在政策摘要中查看更改以確認已修正所有問題。若要了解如何編輯內嵌政策,請參閱 編輯 IAM 政策。您無法編輯 AWS 受管政策。

使用 Visual editor (視覺化編輯器) 標籤來編輯政策摘要的政策

  1. 按照上述步驟中的說明開啟政策摘要。

  2. 選擇 Edit Policy (編輯政策)。

    如果您已打開 Users (使用者) 頁面,並選擇編輯連接到該使用者的客戶受管政策,系統會將您重新引導 Policies (政策) 頁面。您只能在 Policies (政策) 頁面上編輯客戶受管政策。

  3. 選擇 Visual editor (視覺化編輯器) 索引標籤來查看您的政策的可編輯視覺化形式。IAM 可能會調整您的政策結構以針對視覺化編輯器進行最佳化,並使您更輕鬆地查詢和解決任何問題。頁面上的警告和錯誤訊息可以引導您解決政策中的任何問題。如需有關 IAM 重新建構這些政策的詳細資訊,請參閱 政策結構調整

  4. 編輯您的政策,然後選擇 Review policy (檢閱政策) 以查看變更是否已在政策摘要中反映。如果仍出現問題,請選擇 Previous (上一步) 以返回到編輯螢幕。

  5. 選擇 Save (儲存) 儲存變更。

使用 JSON 索引標籤來編輯政策摘要的政策

  1. 按照上述步驟中的說明開啟政策摘要。

  2. 選擇 { } JSONPolicy summary (政策摘要) 來將政策摘要與 JSON 政策文件進行比較。您可以使用該資訊來決定要更改政策文件中的哪些行。

  3. 選擇 Edit policy (編輯),然後選擇 JSON 標籤以編輯 JSON 政策文件。

    注意

    您可以隨時切換 Visual editor (視覺化編輯器) 與 JSON 標籤。不過,如果您進行更改或在 Visual editor (視覺編輯工具) 索引標籤中選擇 Review policy (檢閱政策),IAM 可能會調整您的政策結構以針對視覺編輯工具進行最佳化。如需詳細資訊,請參閱 政策結構調整

    如果您已打開 Users (使用者) 頁面,並選擇編輯連接到該使用者的客戶受管政策,系統會將您重新引導 Policies (政策) 頁面。您只能在 Policies (政策) 頁面上編輯客戶受管政策。

  4. 編輯政策。解決政策驗證期間產生的任何安全性警告、錯誤或一般性警告,然後選擇 Review policy (檢閱政策)。如果仍出現問題,請選擇 Previous (上一步) 以返回到編輯螢幕。

  5. 選擇 Save (儲存) 儲存變更。

了解政策摘要的元素

在下列使用者詳細資訊頁面範例中,PolSumUser 使用者有八個連接的政策。SummaryAllElements 政策是直接連接到使用者的受管政策 (客戶管理政策)。此政策已展開並顯示了政策摘要。若要查看此政策的 JSON 政策文件,請參閱 SummaryAllElements JSON 政策文件


        政策摘要對話方塊圖片

在上圖中,政策摘要顯示於使用者詳細資訊頁面:

  1. 使用者的 Permissions (許可) 標籤包含連接到 PolSumUser 使用者的政策。

  2. SummaryAllElements 政策是連接到使用者的幾個政策之一。政策已展開可用於檢視政策摘要。

  3. 如果政策未授予許可給政策中定義的所有操作、資源和條件,則將在頁面頂部顯示警告或錯誤橫幅。政策摘要中包含關於問題的詳細資訊。若要瞭解政策摘可如何協助您瞭解政策授予的許權並進行相關問題故障排除,請參閱我的政策未授與預期的許可.。

  4. 使用 Policy summary (政策摘要) 和 { } JSON 按鈕可在政策摘要和 JSON 政策文件之間切換。

  5. Simulate policy (模擬政策) 可開啟用於測試政策的政策模擬器。

  6. 使用搜尋框可減少服務清單,輕鬆查詢特定服務。

  7. 展開的視圖顯示了 SummaryAllElements 政策的更多詳細資訊。

下面的政策摘要表圖像顯示在 PolSumUser 使用者詳細資訊頁面上的已展開 SummaryAllElements 政策


        政策摘要對話方塊圖片

在上圖中,政策摘要顯示於使用者詳細資訊頁面:

  1. Service (服務) – 此欄列出在政策內定義的服務並提供每項服務的詳細資訊。政策摘要表中的每個服務名稱都是指向服務摘要表的一個連結,服務摘要 (動作清單) 中對其進行了說明。在此範例中,為 Amazon S3、帳單和 Amazon EC2 服務定義了許可。該政策也為 IAM 無法辨識 (拼寫錯誤) 的 codedploy 服務定義了許可。

  2. Unrecognized services (無法辨識的服務) – 此政策包括一個無法辨識的服務 (在此範例中為 codedploy )。您可以使用此警告來檢查服務名稱是否可能包含拼寫錯誤。如果服務名稱正確,則該服務可能不支援政策摘要,可能處於預覽狀態,或者可能是自訂服務。若請求全面供應 (GA) 服務的政策摘要支援,請參閱 服務不支援 IAM 政策摘要。在此範例中,政策包括一個無法識別的 codedploy 服務,其名稱中缺少一個 e。由於這種拼寫錯誤,該政策不提供預期的 AWS CodeDeploy 許可。您可以編輯政策以包括準確的 codedeploy 服務名稱;隨後該服務將出現在政策摘要中。

  3. 對於 IAM 辨識的那些服務,它根據政策是允許還是明確拒絕使用該服務來安排服務。在此範例中,政策包含用於 Amazon S3 服務的 AllowDeny 陳述式。因此,政策摘要在 Explicit deny (明確拒絕) 和 Allow (允許) 部分中都包含 S3。

  4. Show remaining 100 (顯示剩餘的 100) – 選擇此連結可展開資料表以包括政策未定義的服務。這些服務在該政策中被隱含拒絕 (或根據預設拒絕)。但是,另一政策中的陳述中可能仍然允許或明確拒絕使用該服務。政策摘要匯總了單一政策的許可。若要了解 AWS 服務如何決定允許還是拒絕收到的請求,請參閱政策評估邏輯

  5. EC2 – 此服務包含無法辨識的動作。IAM 辨識支援政策摘要的服務名稱、操作和資源類型。若可以辨識服務但無法辨識服務中包含的動作,IAM 將在該服務旁邊顯示一則警告。在此範例中,IAM 至少無法辨識一個 Amazon EC2 動作。要了解有關無法辨識的操作的更多資訊,並查看 S3 服務摘要中無法辨識的操作,請參閱 服務摘要 (動作清單)

    注意

    IAM 會檢閱支援政策摘要的服務的服務名稱、動作和資源類型。不過,您的政策摘要可能包含不存在資源值或條件。請一律使用政策模擬器來測試政策。

  6. S3 – – 此服務包含無法辨識的資源。IAM 辨識支援政策摘要的服務名稱、操作和資源類型。若可以辨識服務但無法辨識服務中包含的資源類型,IAM 將在該服務旁邊顯示一則警告。在此範例中,IAM 至少無法辨識一個 Amazon S3 動作。要了解有關無法辨識的資源的更多資訊,並查看 S3 服務摘要中無法辨識的資源類型,請參閱 服務摘要 (動作清單)

  7. Access level (存取層級) – 此欄指出在政策中為每個存取級別中的動作 (ListReadWrite 以及 Permissions management) 定義的是 FullLimited 許可。有關存取權限級別摘要的更多詳細資訊和範例,請參閱 了解政策摘要內的存取層級摘要

    • Full access (完整存取) – 此項目顯示服務對於該服務可用的全部四個存取層級中的所有動作都擁有存取權限。在此範例中,因為此資料列在資料表的 Explicit deny (明確拒絕) 區段中,所以會拒絕對政策中包含資源的所有 Amazon S3 動作。

    • 如果該項不包含 Full access (完整存取),則服務可以存取部分但不是全部用於該服務的動作。然後,透過對四個存取級別分類 (ListReadWrite、以及 Permissions management) 中的每個分類的說明來定義存取權限:

      Full (完整):政策提供對列出的每個存取級別分類中的所有動作的存取權限。在此範例中,政策提供對所有帳單 Read 操作的存取權限。

      Limited (限制):政策提供對所列每個存取級別分類內的一或多個但非全部動作的存取權限。在此範例中,政策提供對部分帳單 Write 操作的存取權限。

  8. Resource (資源) – 此欄顯示政策為每項服務指定的資源。

    • Multiple (多個) – 政策包含服務內的多項資源,但並非全部。在此範例中,明確拒絕對多個 Amazon S3 資源的存取權限。

    • All resources (所有資源) – 政策是為服務內的所有資源而定義。在此範例中,政策允許對所有帳單資源執行列出的操作。

    • 資源文字 – 該政策包含服務內的一個資源。在此範例中,只允許對 developer_bucket Amazon S3 儲存貯體資源執行列出的動作。根據服務提供給 IAM 的資訊,您可能會看到一個 ARN (例如 arn:aws:s3:::developer_bucket/*),或者您可能會看到定義的資源類型 (例如 BucketName = developer_bucket)。

      注意

      此欄位可能包含不同服務的資源。如果包含資源的政策陳述式,不包含來自相同服務的動作和資源,則您的政策包含不相符的資源。在建立政策或在政策摘要中查看政策時,IAM 不會警告您關於無法配對的資源。如果此欄位包含不相符的資源,則您應該檢閱您的政策錯誤。若要更全面了解您的政策,請一律以政策模擬器來測試。

  9. Request condition (請求條件) – 此欄顯示與資源關聯的服務或動作是否受條件約束。

    • None (無) – 政策對服務不包含任何條件。在此範例中,沒有條件適用於 Amazon S3 服務中拒絕的操作。

    • 條件文字 – 政策包含服務的一項條件。在此範例中,僅當來源的 IP 地址與 203.0.113.0/24 匹配時,才允許列出的 Billing (帳單) 動作。

    • Multiple (多項) – 政策包含服務的多項條件。在此範例中,根據多個條件允許存取列出的 Amazon S3 動作的權限。若要查看政策多項條件中的每一項條件,請選擇 { } JSON 來查看政策文件。

當政策或政策中的元素未授予許可時,IAM 在政策摘要中提供額外的警告和資訊。下面的政策摘要表顯示了在 PolSumUser 使用者詳細資訊頁面上展開的 Show remaining 100 (顯示剩餘的 100) 服務,並附上可能的警告。


        政策摘要對話方塊圖片

在上圖中,您可以看到包含沒有許可的已定義操作、資源或條件的所有服務:

  1. Resource warnings (資源警告) – 對於沒有為所有包含的動作或資源提供許可的服務,您將在資料表的 Resource (資源) 欄中看到以下警告之一:

    • 未定義資源。– 這表示該服務具有已定義的動作,但政策中不包含支援的資源。

    • 一或多個動作沒有適用資源。– 表示該服務具有已定義的動作,但其中一些動作沒有支援的資源。

    • 一或多個資源沒有適用動作。– 表示該服務具有已定義的資源,但其中一些資源沒有支援的動作。

    如果服務同時包含沒有適用資源的動作和沒有適用資源的資源,則只會顯示 One or more resources do not have an applicable action. (一或多個資源沒有適用動作。) 警告。這是因為當您查看服務的服務摘要時,不會顯示不適用於任何動作的資源。對於 ListAllMyBuckets 動作,此政策包含最後一條警告,因為該動作不支援資源級許可,也不支援 s3:x-amz-acl 條件索引鍵。如果您修復資源問題或條件問題,剩餘的問題會出現在詳細的警告中。

  2. Request condition warnings (請求條件警告) – 對於沒有為所有包含的條件提供許可的服務,您將在資料表的 Request condition (請求條件) 欄中看到以下警告之一:

    • 一或多個動作沒有適用條件。– 表示該服務具有已定義的動作,但其中一些動作沒有支援的條件。

    • 一或多個條件沒有適用動作。– 表示該服務具有已定義的條件,但其中一些條件沒有支援的動作。

  3. Multiple (多個) | 一或多個動作沒有適用資源。– Amazon S3 的 Deny 陳述式包含一個以上的資源。它還包含多個動作,但其中一些動作支援資源,一些不支援。若要查看此政策,請參閱 SummaryAllElements JSON 政策文件。在這種情況下,政策包含所有 Amazon S3 動作,只會拒絕可在儲存貯體或儲存貯體物件上執行的動作。

  4. 省略號 (…) 表示在頁面中包含所有服務,但我們只顯示具有此政策相關資訊的行。在 AWS Management Console中查看此頁面時,您將看到所有 AWS 服務。

  5. 表格中行的背景顏色表示不授予任何許可的服務。您無法在政策摘要中獲取有關這些服務的任何其他資訊。對於以白色行顯示的服務,您可以選擇服務名稱查看服務摘要 (動作清單) 頁面。在該頁面中,您可以了解有關授予該服務許可的更多資訊。

  6. None (無) – 未定義動作。– 這表示該服務定義為資源或條件,但服務不包含任何動作,因此服務不提供任何許可。在這種情況下,政策包含 CodeBuild 資源,但沒有 CodeBuild 動作。

  7. No resources are defined (未定義資源) – 服務具有已定義的動作,但政策中不包含支援的資源,因此服務不提供任何許可。在這種情況下,政策包含 CodeCommit 動作,但沒有 CodeCommit 資源。

  8. BucketName = developer_bucket, ObjectPath = All | 一或多個資源沒有適用動作。– 服務具有定義的儲存貯體物件資源和至少一個沒有支援動作的資源。

  9. s3:x-amz-acl = public-read | 一或多個條件沒有適用動作。– 服務具有定義的 s3:x-amz-acl 條件索引鍵和至少一個沒有支援動作的條件索引鍵。

SummaryAllElements JSON 政策文件

SummaryAllElements 政策不適用於在帳戶中定義許可。包含它的目的在於說明您在查看政策摘要時可能會遇到的錯誤和警告。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aws-portal:ViewBilling", "aws-portal:ViewPaymentMethods", "aws-portal:ModifyPaymentMethods", "aws-portal:ViewAccount", "aws-portal:ModifyAccount", "aws-portal:ViewUsage" ], "Resource": [ "*" ], "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } } }, { "Effect": "Deny", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::customer", "arn:aws:s3:::customer/*" ] }, { "Effect": "Allow", "Action": [ "ec2:GetConsoleScreenshots" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "codedploy:*", "codecommit:*" ], "Resource": [ "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*", "arn:aws:codebuild:us-east-1:123456789012:project/my-demo-project" ] }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetObject", "s3:DeletObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::developer_bucket", "arn:aws:s3:::developer_bucket/*", "arn:aws:autoscling:us-east-2:123456789012:autoscalgrp" ], "Condition": { "StringEquals": { "s3:x-amz-acl": [ "public-read" ], "s3:prefix": [ "custom", "other" ] } } } ] }