View a markdown version of this page

防止访问 Parameter Store API 操作 - AWS Systems Manager

防止访问 Parameter Store API 操作

使用 Systems Manager for AWS Identity and Access Management(IAM)策略支持的服务特定条件,您可以明确允许或拒绝对 Parameter Store API 操作和内容的访问。通过使用这些条件,您可仅允许组织中的某些 IAM 实体(用户和角色)调用某些 API 操作,或者防止某些 IAM 实体运行它们。这包括通过 Parameter Store 控制台、AWS Command Line Interface(AWS CLI)和 SDK 运行的操作。

在编写用于拒绝访问特定参数的策略之前,请先查看 Parameter Store 如何授权参数检索。Parameter Store 会独立授权每项检索操作,因此仅拒绝一项操作的策略可能无法产生您预期的结果。

Parameter Store 特定的条件键

Systems Manager 支持两个 Parameter Store 特定的条件键。两者均适用于 PutParameter 操作,并可控制参数的创建和更新方式。

ssm:Overwrite

控制主体是否可以更新现有参数。请参阅通过 ssm:Overwrite 来防止更改现有参数。

ssm:Policies

控制主体是否可以创建或更新包含参数策略的参数。请参阅通过 ssm:Policies 来防止创建或更新使用参数策略的参数。

如需限制主体可以读取的参数,请使用限制对特定参数和路径的访问所述的资源级和操作级控制,而非条件键。

通过 ssm:Overwrite 来防止更改现有参数

使用 ssm:Overwrite 条件控制 IAM 实体是否可以更新现有参数。

在以下示例策略中,"Allow" 语句授予创建参数的权限,创建方法是在美国东部(俄亥俄州)区域(us-east-2)的 AWS 账户 123456789012 中运行 PutParameter API 操作。

然而,"Deny" 语句防止实体更改现有参数的值,因为针对 PutParameter 操作明确拒绝 Overwrite 选项。因此,为其分配此策略的实体可以创建参数,但不能对现有参数进行更改。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:PutParameter" ], "Condition": { "StringEquals": { "ssm:Overwrite": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*" } ] }

通过 ssm:Policies 来防止创建或更新使用参数策略的参数

使用 ssm:Policies 条件来控制实体是否可以创建包含参数策略的参数,以及是否可以更新包含参数策略的现有参数。

在以下策略示例中,"Allow" 语句将授予创建参数的一般权限,而 "Deny" 语句会阻止实体在美国东部(俄亥俄州)区域(us-east-2)的 AWS 账户 123456789012 中创建或更新包含某个参数策略的参数。实体仍然可以创建或更新未分配参数策略的参数。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:PutParameter" ], "Condition": { "StringEquals": { "ssm:Policies": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/*" } ] }