使用共享参数 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用共享参数

共享高级参数可简化多账户环境中的配置数据管理操作。您可以集中存储和管理参数,与需要引用这些参数的其他 Amazon Web Services 账户 共享参数。

Parameter Store 与 Amazon Resource Access Manager(Amazon RAM)集成,可实现高级参数共享。Amazon RAM 是一项服务,让您能够与其他 Amazon Web Services 账户 共享资源,或者通过 Amazon Organizations 共享资源。

通过使用 Amazon RAM,您可以创建资源共享以共享您拥有的资源。资源共享指定要共享的资源、要授予的权限以及与之共享资源的使用者。使用者可包括:

  • Amazon Organizations 中其组织内部或外部的特定 Amazon Web Services 账户。

  • Amazon Organizations 中的所有者组织内部的组织单位

  • 它在 Amazon Organizations 中的整个组织

有关 Amazon RAM 的更多信息,请参阅 Amazon RAM 用户指南

本主题说明如何共享您拥有的参数以及如何使用共享给您的参数。

共享参数的先决条件

要共享账户中的参数,就必须先满足以下先决条件:

  • 要共享参数,您必须在 Amazon Web Services 账户 中拥有该参数。您无法共享已与您共享的参数。

  • 要共享参数,该参数就必须在高级参数层中。有关参数层的信息,请参阅 管理参数层。有关将现有标准参数更改为高级参数的信息,请参阅 将标准参数更改为高级参数

  • 要共享 SecureString 参数,必须使用客户托管密钥对其进行加密,并且必须通过 Amazon Key Management Service 单独共享该密钥。无法共享 Amazon 托管式密钥。使用默认 Amazon 托管式密钥 加密的参数可以更新为改用客户托管密钥。有关 Amazon KMS 密钥的定义,请参阅《Amazon Key Management Service Developer Guide》中的 Amazon KMS concepts

  • 要与组织或 Amazon Organizations 内的组织单位共享参数,您必须允许与 Amazon Organizations 共享。有关更多信息,请参阅Amazon RAM《用户指南》中的允许与 Amazon Organizations 共享。

共享参数

要共享参数,您必须将其添加到资源共享。资源共享是一项 Amazon RAM 资源,可让您跨 Amazon Web Services 账户 共享资源。资源共享指定要共享的资源以及与之共享资源的使用者。

在与其他 Amazon Web Services 账户 共享自己拥有的参数时,您可以从两个 Amazon 托管权限中进行选择,授予使用者相应权限。有关更多信息,请参阅 共享参数的权限集

如果您属于 Amazon Organizations 内的某个组织,并启用了组织内共享,则您可以授予组织中的使用者从 Amazon RAM 控制台访问共享参数的权限。否则,使用者会收到加入资源共享的邀请,并在接受邀请后获得对共享参数的访问权限。

您可以使用 Amazon RAM 控制台或 Amazon CLI 共享自己拥有的参数。

注意

虽然可以使用 Systems Manager PutResourcePolicy API 操作共享参数,但建议使用 Amazon Resource Access Manager(Amazon RAM)。这是因为使用 PutResourcePolicy 需要执行额外步骤,即使用 Amazon RAM PromoteResourceShareCreatedFromPolicy API 操作将参数提升为标准资源共享。否则,Systems Manager DescribeParameters API 操作不会使用 --shared 选项返回该参数。

使用 Amazon RAM 控制台共享拥有的参数

请参阅《Amazon RAM 用户指南》中的创建资源共享

使用 Amazon 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 控制台、Amazon RAM 控制台或 Amazon CLI 完成此操作。

使用 Amazon RAM 控制台停止共享拥有的参数

请参阅《Amazon RAM User Guide》中的 Update a resource share in Amazon RAM

使用 Amazon CLI 停止共享拥有的参数

使用 disassociate-resource-share 命令。

标识共享参数

拥有者和使用者可以使用 Amazon CLI 标识共享参数。

使用 Amazon CLI 标识共享参数

要使用 Amazon CLI 标识共享参数,可以选用 Systems Manager describe-parameters 命令或 Amazon RAM list-resources 命令。

在将 --shared 选项与 describe-parameters 一起使用后,该命令会返回与您共享的参数。

以下是示例:

aws ssm describe-parameters --shared

访问共享参数

使用者可以使用 Amazon 命令行工具和 Amazon SDK 访问共享参数。对于使用者账户,与该类账户共享的参数未包含在我的参数页面中。

CLI 示例:使用 Amazon CLI 访问共享参数的详细信息

要使用 Amazon CLI 访问共享参数的详细信息,可以使用 get-parameterget-parameters 命令。必须将完整参数 ARN 指定为 --name,才能从其他账户检索参数。

示例如下:

aws ssm get-parameter \ --name arn:aws:ssm:us-east-2:123456789012:parameter/MySharedParameter
共享参数支持和不支持的集成

目前可在以下集成场景中使用共享参数:

以下场景和集成服务目前不支持使用共享参数:

共享参数的权限集

使用者账户拥有对共享参数的只读访问权限。使用者无法更新或删除该类参数。使用者无法与第三个账户共享该类参数。要授予此只读访问权限,可从如下两个 Amazon 托管式权限集中进行选择:

AWSRAMDefaultPermissionSSMParameterReadOnly

允许的操作:DescribeParametersGetParameterGetParameters

AWSRAMPermissionSSMParameterReadOnlyWithHistory

允许的操作:DescribeParametersGetParameterGetParametersGetParameterHistory

共享参数的最大吞吐量

Systems Manager 限制了 GetParameterGetParameters 操作的最大吞吐量(每秒事务数)。吞吐量在个人账户级别强制实施。因此,使用共享参数的每个账户都可以使用允许的最大吞吐量,不会受到其他账户的影响。有关参数最大吞吐量的更多信息,请参阅以下主题:

共享参数的定价

只有高级参数层中支持跨账户共享。对于高级参数,每个高级参数的存储API 使用量按当前价格计费。高级参数的拥有账户需要支付此类参数的存储费用。对共享的高级参数进行 API 调用的使用账户,则需支付此类参数的使用费。

例如,账户 A 创建了高级参数 MyAdvancedParameter,则该账户每月需支付 0.05 美元来存储该参数。

然后,账户 A 与账户 B 和账户 C 共享 MyAdvancedParameter。在一个月内,这三个账户都会调用 MyAdvancedParameter。下表说明了各账户因调用次数产生的费用。

注意

下表列示的费用仅供说明之用。要验证当前定价,请参阅 Parameter Store 的 Amazon Systems Manager 定价

账户 调用次数 收费
账户 A(拥有账户) 一万次调用
  • 存储高级参数一个月:0.05 美元

  • 调用 MyAdvancedParameter 一万次:0.05 美元

  • 总额:0.10 美元

账户 B(使用账户) 两万次调用
  • 调用 MyAdvancedParameter 两万次:0.10 美元

  • 总额:0.10 美元

账户 C(使用账户) 三万次调用
  • 调用 MyAdvancedParameter 三万次:0.15 美元

  • 总额:0.15 美元

已关闭 Amazon Web Services 账户 的跨账户访问权限

如果拥有共享参数的 Amazon Web Services 账户 已关闭,则所有使用账户都会失去对共享参数的访问权限。如果拥有账户在账户关闭后的 90 天内重新打开,则使用账户会重新获得对先前共享参数的访问权限。有关在关闭后期间重新打开账户的更多信息,请参阅《Amazon Account Management Reference Guide》中的 Accessing your Amazon Web Services 账户 after you close it