在 Parameter Store 中使用共用參數
共用進階參數可簡化在多帳戶環境中的組態資料管理。您可以集中儲存和管理參數,並與其他需要參考它們的 AWS 帳戶共用參數。
Parameter Store 與 AWS Resource Access Manager (AWS RAM) 整合以啟用進階參數共用。AWS RAM 是一項可讓您與其他 AWS 帳戶或透過 AWS Organizations 共用資源的服務。
您可以透過 AWS RAM 建立資源共用,以共用您擁有的資源。資源共用指定要共用的資源、要授予的許可以及共用的消費者。消費者可包括:
-
AWS Organizations 中其組織內外的特定 AWS 帳戶
-
之組織內的組織單位AWS Organizations
-
中的整個組織AWS Organizations
如需 AWS RAM 的相關資訊,請參閱《AWS RAM 使用者指南》https://docs.aws.amazon.com/ram/latest/userguide/。
本主題說明如何共用您擁有的參數,以及如何使用與您共用的參數。
共用參數的先決條件
必須符合下列先決條件,才能從帳戶共用參數:
-
若要共用參數,您的 AWS 帳戶中必須擁有它。您不能共用已與您共用的參數。
-
若要共用參數,該參數必須位於進階參數層。如需有關參數方案的詳細資訊,請參閱管理參數層。如需有關將現有標準參數變更為進階參數的詳細資訊,請參閱將標準參數變更為進階參數。
-
若要共用
SecureString參數,必須使用客戶自管金鑰加密,而且您必須透過 AWS Key Management Service 單獨共用金鑰。AWS 受管金鑰無法共用。使用預設 AWS 受管金鑰加密的參數可以更新為改用客戶自管金鑰。如需 AWS KMS 金鑰定義,請參閱《AWS Key Management Service 開發人員指南》中的 AWS KMS concepts。 -
若要在 AWS Organizations 中與組織或組織單位共用參數,您必須透過 AWS Organizations 啟用共用功能。如需詳細資訊,請參閱《AWS RAM 使用者指南》中的透過 AWS Organizations 啟用共用。
共用參數
若要共用參數,必須將它新增至資源共用。資源共用是可讓您在 AWS 帳戶 之間共用資源的一種 AWS RAM 資源。資源共享指定要共用的資源,以及共用它們的消費者。
您與其他 AWS 帳戶共用您擁有的參數時,可以從兩個 AWS 受管許可中選擇要授予取用者的許可。如需更多詳細資訊,請參閱 共用參數的許可集。
如果您是 AWS Organizations 中組織的一份子,並在組織內啟用了共用功能,則可以從 AWS RAM 主控台將共用參數的存取權授予組織內的取用者。否則,取用者會收到加入資源共用的邀請,並且在接受邀請後便能存取共用的參數。
您可以使用 AWS RAM 主控台或 AWS CLI 共用您擁有的參數。
注意
雖然您可以使用 Systems Manager PutResourcePolicy API 操作共用參數,但我們建議改用 AWS Resource Access Manager (AWS RAM)。這是因為使用 PutResourcePolicy 就需要使用 AWS RAM PromoteResourceShareCreatedFromPolicy API 操作,將參數提升為標準資源共用的額外步驟。否則,Systems Manager DescribeParameters API 操作不會使用 --shared 選項傳回參數。
使用 AWS RAM 主控台共用您擁有的參數
請參閱《AWS RAM 使用者指南》中的 Creating a resource share in AWS RAM。
完成該程序時,請進行下列選擇:
-
在「步驟 1」頁面中,對於資源,選取
Parameter Store Advanced Parameter,然後選取要共用之進階參數方案中每個參數的方塊。 -
在「步驟 2」頁面中,對於受管許可,選擇要授予取用者的許可,如稍後在本主題中的共用參數的許可集所述。
根據您的參數共用目標選擇其他選項。
使用 AWS CLI 共用您擁有的參數
使用 create-resource-share 命令將參數新增至新資源共用。
使用 associate-resource-share 命令將參數新增至現有資源共用。
下列範例會建立新的資源共用,以與組織中及個別帳戶中的取用者共用參數。
aws ram create-resource-share \ --name "MyParameter" \ --resource-arns "arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter" \ --principals "arn:aws:organizations::123456789012:ou/o-63bEXAMPLE/ou-46xi-rEXAMPLE" "987654321098"
停止共享共用參數
當您停止共享共用參數時,取用者帳戶將無法再存取參數。
若要停止共用您擁有的參數,您必須從資源共用中移除該參數。您可以使用 Systems Manager 主控台、AWS RAM 主控台或 AWS CLI 來這樣做。
使用 AWS RAM 主控台停止共用您擁有的參數
請參閱《AWS RAM 使用者指南》中的 Update a resource share in AWS RAM。
使用 AWS CLI 停止共用您擁有的參數
使用 disassociate-resource-share 命令。
識別共用參數
擁有者和取用者可以使用 AWS CLI 識別共用參數。
使用 AWS CLI 識別共用參數
若要使用 AWS CLI 識別共用參數,您可以從 Systems Manager describe-parameters 命令和 AWS RAM list-resources 命令中選擇。
將 --shared 選項與 describe-parameters 搭配使用時,命令會傳回與您共用的參數。
以下是範例:
aws ssm describe-parameters --shared
存取共用參數
取用者可以使用 AWS 命令列工具和 AWS SDK 存取共用參數。若為取用者帳戶,與該帳戶共用的參數不會包含在我的參數頁面中。
CLI 範例:使用 AWS CLI 存取共用參數詳細資訊
若要使用 AWS CLI 存取共用參數詳細資訊,您可以使用 get-parameter 或 get-parameters 命令。您必須將完整參數 ARN 指定為 --name,才能從其他帳戶擷取參數。
以下是範例。
aws ssm get-parameter \ --name arn:aws:ssm:us-east-2:123456789012:parameter/MySharedParameter
共用參數的支援和不支援整合
目前,您可以在下列整合案例中使用共用參數:
-
AWS CloudFormation 範本參數
-
使用 EC2 RunInstances 命令從 Amazon Machine Image (AMI) 建立執行個體的
ImageID值 -
擷取 Automation 執行手冊中的參數值
(Automation 是 Systems Manager 中的工具)
下列案例與整合服務目前不支援使用共用參數:
共用參數的許可集
取用者帳戶會取得您與其共用之參數的唯讀存取權。取用者無法更新或刪除參數。取用者無法與第三個帳戶共用參數。
您在 AWS Resource Access Manager 中建立資源共用以共用參數時,可以從兩個 AWS 受管許可集中選擇,以授予此唯讀存取權:
- AWSRAMDefaultPermissionSSMParameterReadOnly
-
允許的動作:
DescribeParameters、GetParameter、GetParameters - AWSRAMPermissionSSMParameterReadOnlyWithHistory
-
允許的動作:
DescribeParameters、GetParameter、GetParameters、GetParameterHistory
按照《AWS RAM 使用者指南》 中 Creating a resource share in AWS RAM 的步驟操作時,請根據您是否希望使用者檢視參數歷史記錄,選擇 Parameter Store Advanced
Parameters 作為資源類型和其中一個受管許可。
注意
如果您以程式設計方式擷取共用參數 (例如使用 AWS Lambda),您可能需要將 ssm:GetResourcePolicies 和 ssm:PutResourcePolicy 許可新增至呼叫 AWS Resource Access Manager API 動作的任何 IAM 角色。
共用參數的輸送量上限
Systems Manager 會限制 GetParameter 和 GetParameters 操作的輸送量上限 (每秒交易數)。輸送量會在個別帳戶層級強制執行。因此,每個使用共用參數的帳戶都可以使用其允許的輸送量上限,而不會受到其他帳戶的影響。如需有關參數輸送量上限的詳細資訊,請參閱下列主題:
-
Amazon Web Services 一般參考 中的 Systems Manager Service Quotas。
共用參數定價
跨帳戶共用僅可在進階參數方案中使用。對於進階參數,會依每個進階參數儲存和 API 用量的目前價格產生費用。擁有帳戶需要支付進階參數的儲存費用。對共用進階參數進行 API 呼叫的任何耗用帳戶需要支付參數用量的費用。
例如,如果帳戶 A 建立進階參數 MyAdvancedParameter,該帳戶每月需要支付 0.05 美元以儲存參數。
接著帳戶 A 會與帳戶 B 和帳戶 C 共用 MyAdvancedParameter。在一個月內,這三個帳戶會呼叫 MyAdvancedParameter。下表說明每個帳戶進行的呼叫次數所產生的費用。
注意
下表中的費用僅供說明使用。若要確認目前的定價,請參閱 AWS Systems ManagerParameter Store 的定價
| 帳戶 | 呼叫次數 | 費用 |
|---|---|---|
| 帳戶 A (擁有帳戶) | 10,000 次呼叫 |
|
| 帳戶 B (耗用帳戶) | 20,000 次呼叫 |
|
| 帳戶 C (耗用帳戶) | 30,000 次呼叫 |
|
已關閉之 AWS 帳戶的跨帳户存取權
如果關閉擁有共用參數的 AWS 帳戶,則所有耗用帳戶都會失去對共用參數的存取權。如果擁有帳戶在帳戶關閉後 90 天內重新開啟,則耗用帳戶會重新取得對先前共用參數的存取權。如需有關在關閉後期間重新開啟帳戶的詳細資訊,請參閱《AWS 帳戶管理 參考指南》中的 Accessing your AWS 帳戶 after you close it。