View a markdown version of this page

限制对特定参数和路径的访问 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

限制对特定参数和路径的访问

使用以下方法限制对单个参数或参数集的访问。此方法体现了 Parameter Store 如何授权参数检索所述的授权行为。

限制对特定参数或路径的访问
  1. 优先授予范围较窄的访问权限,而非拒绝范围宽泛的访问权限。如可行,将 Allow 语句的范围限定为主体所需的最小参数集,而不是先授予宽泛的访问权限再逐一撤销。从不授予参数访问权限的 Allow 语句不依赖于您对每个操作的正确枚举。

  2. 将敏感参数单独归入其各自的路径。敏感参数不与主体有权读取的参数共享同一路径的情况下,访问限制会更加简单。例如,将受限值存储在 /myapp/restricted/ 下,而不是与常规配置一起存储在 /myapp/config/ 下。有关整理参数的更多信息,请参阅处理 Parameter Store 中的参数层次结构。

  3. 拒绝访问时,请拒绝可能返回该值的所有操作。包括 ssm:GetParameter、ssm:GetParameters、ssm:GetParameterHistory 和 ssm:GetParametersByPath,或使用 ssm:GetParameter* 来匹配全部四个。

  4. 对于 GetParametersByPath,请拒绝所有祖先路径。对参数自身 ARN 的拒绝并不能阻止针对其上方路径的调用返回该参数。如需保护 /myapp/restricted/db-password,请针对 /myapp/restricted、/myapp 和 / 拒绝 ssm:GetParametersByPath。

  5. 对于 SecureString 参数,请限制对 KMS 密钥的 kms:Decrypt。无论使用哪种 Parameter Store 操作,检索解密后的 SecureString 值都需要对加密该值的密钥拥有 kms:Decrypt 权限。因此,拒绝 kms:Decrypt 即可阻止通过所有检索路径进行解密。请参阅限制 SecureString 参数值的解密。

  6. 验证结果。以受限主体身份测试每个检索操作。针对每个祖先路径添加 GetParametersByPath 测试,以确认策略的行为符合预期。您还可以使用 IAM 策略模拟器来针对特定操作和资源评估策略。

有关 IAM 如何组合 Allow 和 Deny 语句的更多信息,请参阅《IAM 用户指南》中的策略评估逻辑。