版本控制IAM政策 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

版本控制IAM政策

當您變更IAM客戶受管政策,以及 AWS 變更 AWS 受管政策時,變更的政策不會覆寫現有政策。相反地, IAM會建立新的受管政策版本。IAM 最多可儲存五個版本的客戶受管政策。IAM 不支援內嵌政策的版本控制。

下圖說明客戶受管政策的版本控制。在此範例中,版本 1-4 會進行儲存。您最多可以將五個受管政策版本儲存至 IAM。當您編輯建立第六個儲存版本的政策時,您可以選擇任一不再儲存的舊版本。您可以隨時恢復到其他四個儲存版本中的任何一個。

變更受管政策時會變成新版本的政策

政策版本與 Version 政策元素不同。Version 政策元素是在政策內使用,並定義政策語言的版本。若要進一步了解 Version 政策元素,請參閱 IAMJSON政策元素:Version

您可以使用版本來追蹤受管政策的變更。例如,您可以變更受管政策,然後發現該變更有各種意外影響。在這種情況下,您可以復原至舊版的受管政策,做法是將舊版本設定為預設版本。

以下各主題說明如何使用受管政策的版本控制。

版本限制

受管政策至多可有 5 個版本。如果您需要從 AWS Command Line Interface或 對超過五個版本的受管政策進行變更 AWS API,您必須先刪除一或多個現有版本。如果您使用 AWS Management Console,則不需要在編輯政策之前刪除版本。當您儲存第六個版本,會出現一個對話方塊,提示您刪除一或多個非預設的政策版本。您可以檢視每個版本的JSON政策文件,以協助您做出決定。如需此對話方塊的詳細資訊,請參閱編輯IAM策略

您可以刪除任何想要的受管政策的版本,除了預設版本以外。當您刪除某個版本,剩餘版本的版本識別碼不會變更。因此,版本識別碼可能不會序列化。例如,若刪除受管政策的版本 v2 和 v4,並新增兩個新版本,剩餘的版本識別碼可能為 v1、v3、v5、v6 和 v7。

使用 版本來復原變更

您可以設定客戶受管政策的預設版本來復原您的變更。例如,考量以下情境:

您建立客戶受管政策,讓使用者能夠使用 AWS Management Console管理特定 Amazon S3 儲存貯體。建立後,您的客戶受管政策只有一個版本 (識別為 v1),所以該版本會自動設定為預設值。該政策按預期運作。

之後,您更新政策來新增許可,以管理第二個 Amazon S3 儲存貯體。IAM 會建立新的政策版本,識別為 v2,其中包含您的變更。您設定版本 v2 為預設值,不久後您的使用者報告他們沒有獲得使用 Amazon S3 主控台的許可。在這種情況下,您可以復原到版本 v1 的政策,就是您所知按預期運作的版本。為了這樣做,您設定版本 v1 為預設版本。您的使用者現在可以使用 Amazon S3 主控台來管理原始儲存貯體。

之後,在您判斷出政策的版本 v2 錯誤後,您再次更新政策來新增許可,以管理第二個 Amazon S3 儲存貯體。IAM 會建立新的政策版本,識別為 v3。您設定版本 v3 為預設值,而此版本按預期運作。此時,您刪除政策的版本 v2。

用於設定預設政策版本的許可

設定政策預設版本所需的許可會對應至任務 AWS API的操作。您可以使用 CreatePolicyVersionSetDefaultPolicyVersionAPI操作來設定政策的預設版本。若要讓某人設定現有政策的預設政策版本,您可以允許存取 iam:CreatePolicyVersion 動作或 iam:SetDefaultPolicyVersion 動作。這個 iam:CreatePolicyVersion 動作可讓他們建立新版本的政策,並設定該版本為預設值。這個 iam:SetDefaultPolicyVersion 動作可讓他們將任何現有的政策版本設定為預設值。

重要

拒絕使用者政策中的 iam:SetDefaultPolicyVersion 動作不會阻止使用者建立新的政策版本,並設定為預設值。

您可以使用以下政策來拒絕使用者存取變更現有客戶的受管政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "iam:CreatePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::*:policy/POLICY-NAME" } ] }

設定客戶受管政策的預設版本

其中一個受管政策版本是設定為預設版本。政策的預設版本是可操作版本,也就是說,它是受管政策連接的所有主要實體 (IAM使用者、IAM群組和IAM角色) 有效的版本。

當您建立客戶受管政策,政策從單一版本 (識別為 v1) 開始。對於只有單一版本的受管政策,該版本會自動設定為預設值。對於具有多個版本的客戶受管政策,您可以選擇將哪個版本設定為預設值。對於 AWS 受管政策,預設版本由 設定 AWS。下圖說明了此概念。

具單一版本的受管政策,其為預設版本

客戶受管政策使用三種版本,其中版本 v2 是預設版本。

您可以設定客戶受管政策的預設版本,將該版本套用至附加政策的每個IAM身分 (使用者、使用者群組和角色)。您無法設定 AWS 受管政策或內嵌政策的預設版本。

設定客戶受管政策的預設版本 (主控台)
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

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

  3. 在政策清單中,選擇要設定預設版本的政策的政策名稱。您可以使用搜尋方塊來篩選政策清單。

  4. 選擇 Policy versions (政策版本) 標籤。選取要設定為預設版本的版本旁的核取方塊,然後選擇 Set as default (設定為預設)

若要了解如何從 AWS Command Line Interface 或 設定客戶受管政策的預設版本 AWS API,請參閱 編輯IAM政策 (AWS CLI)