本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 政策限制對 Parameter Store 參數的存取
您可以使用 AWS Identity and Access Management (IAM) 限制對 AWS Systems Manager 參數的存取。具體而言,您可以建立 IAM 政策以限制存取以下 API 操作:
使用 IAM 政策限制對 Systems Manager 參數的存取時,我們建議您建立和使用限制性 IAM 政策。例如,以下政策可讓使用者為有限的一組資源呼叫 DescribeParameters 和 GetParameters API 操作。這表示使用者可以取得相關資訊,以及使用以 prod-* 開頭的所有參數。
重要
如果使用者擁有路徑的存取權限,則該使用者可存取該路徑的所有層級。例如,如果使用者擁有存取路徑 /a 的許可,則該使用者也可以存取 /a/b。雖然使用者在 IAM 中被明確拒絕存取參數 /a/b,但他們仍能夠以遞迴方式呼叫 /a 的 GetParametersByPath API 操作,並檢視 /a/b。
針對信任的管理員,您可以使用類似以下範例的政策,提供所有 Systems Manager 參數 API 操作的完整存取。此政策可讓使用者完整存取所有以 dbserver-prod-* 開頭的生產參數。
拒絕許可
每個 API 都是唯一的,且具有不同的操作和許可,您可以單獨允許或拒絕它們。任何政策中的明確拒絕會覆寫任何允許。
注意
default AWS Key Management Service (AWS KMS) 金鑰具有 內所有 IAM 主體的Decrypt許可 AWS 帳戶。如果您希望對帳戶中的 SecureString 參數擁有不同的存取級別,不建議您使用預設金鑰。
如果您希望擷取參數值的所有 API 操作具有相同的行為,那麼您可以在政策中使用 GetParameter* 等模式。下列範例會顯示如何拒絕以 prod-* 開頭的所有參數的 GetParameter、GetParameters、GetParameterHistory 以及 GetParametersByPath。
下列範例顯示如何拒絕某些命令,同時允許使用者在以 prod-* 開頭的所有參數中執行其他命令。
注意
參數歷程包含所有參數版本,包括目前的參數版本。因此,如果 GetParameter、GetParameters 和 GetParameterByPath 的使用者許可遭到拒絕、但允許 GetParameterHistory 的許可,則透過使用 GetParameterHistory,他們可以看到當前參數,包括 SecureString 參數。
僅允許特定參數在節點上執行
您可以控制存取,讓受管節點僅可執行您指定的參數。
如果您在建立SecureString參數時選擇 參數類型,Systems Manager 會使用 AWS KMS 來加密參數值。 會使用 AWS 受管金鑰 或客戶受管金鑰來 AWS KMS 加密值。如需 AWS KMS 和 的詳細資訊 AWS KMS key,請參閱 AWS Key Management Service 開發人員指南。
您可以從 AWS 受管金鑰 執行下列命令來檢視 AWS CLI。
aws kms describe-key --key-id alias/aws/ssm
下列範例允許節點僅取得以 prod- 開頭的參數的參數值。如果參數為 SecureString 參數,則節點會使用 AWS KMS來解密字串。
注意
執行個體政策 (例如以下範例) 會指派給 IAM 中的執行個體角色。如需設定存取 Systems Manager 功能的詳細資訊,包括如何將政策指派給使用者和執行個體,請參閱 使用 Systems Manager 管理 EC2 執行個體。
使用 AWS 預設金鑰和客戶受管金鑰的 IAM 許可
Parameter Store SecureString 參數會使用 AWS KMS 金鑰加密和解密。您可以選擇使用 AWS KMS key 或 提供的預設 KMS 金鑰來加密SecureString參數 AWS。
使用客戶受管金鑰時,授予使用者存取參數或參數路徑的 IAM 政策必須提供金鑰的明確 kms:Encrypt 許可。例如,下列政策允許使用者建立、更新和檢視在指定 AWS 區域 和 prod-中以 開頭的SecureString參數 AWS 帳戶。
注意
使用指定的客戶自管金鑰建立加密的進階參數時,需要 kms:GenerateDataKey 許可。
相反地,客戶帳戶中的所有使用者都可以存取預設的 AWS 受管金鑰。如果您使用此預設金鑰加密 SecureString 參數,但不希望使用者使用 SecureString 參數,則其 IAM 政策必須明確拒絕對預設金鑰的存取,如下列政策範例所示。
注意
您可以在 AWS 受管金鑰aws/ssm 標識。
如果您需要對帳戶中的 SecureString 參數進行細微的存取控制,應該使用客戶受管金鑰來保護和限制對這些參數的存取。我們也建議使用 AWS CloudTrail 來監控SecureString參數活動。
如需詳細資訊,請參閱下列主題:
-
《IAM 使用者指南》中的政策評估邏輯
-
使用《AWS Key Management Service 開發人員指南》中的金鑰政策 AWS KMS
-
如需詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的使用 CloudTrail 事件歷史記錄檢視事件。