本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 CloudFormation Hook 授予 IAM 权限
默认情况下,你的全新用户 AWS 账户 无权使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或 AWS API 管理 Hook。要向用户授予权限,IAM 管理员可以创建 IAM 策略。管理员随后可以向角色添加 IAM 策略,用户可以代入角色。
使用本主题中的策略示例创建您自己的自定义 IAM 策略,以授予用户使用 Hooks 的权限。
要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略,请参阅 IAM 用户指南中的使用客户托管策略定义自定义 IAM 权限。
本主题涵盖执行以下操作所需的权限:
-
管理 Hook — 在您的账户中创建、修改和禁用 Hook。
-
公开发布 Hook — 注册、测试和发布您的自定义 Hook,使其在 CloudFormation 注册表中公开发布。
-
查看调用结果-在您的账户中访问和查询 Hook 调用的结果。
-
查看调用结果的详细信息-访问账户中特定 Hook 调用结果的详细信息和补救指南。
创建 IAM 策略时,您可以在《服务授权参考》的 “操作、资源和条件密钥” CloudFormation部分中找到与cloudformation服务前缀关联的所有操作、资源和条件键的文档。
主题
允许用户管理 Hook
如果您需要允许用户管理扩展(包括 Hook),但又无法在 CloudFormation 注册表中将其公开,则可以使用以下示例 IAM 策略。
重要
ActivateType和 SetTypeConfiguration API 调用共同在您的账户中创建 Hook。当你授予用户调用 SetTypeConfiguration API 的权限时,你会自动授予他们修改和禁用现有 Hook 的能力。您不能使用资源级权限来限制对此 API 调用的访问权限。因此,请确保仅向账户中的授权用户授予此权限。
管理 Hook 的用户可能需要一些相关的权限,例如:
-
要在控制 CloudFormation 台的控制目录中查看主动控制,用户必须拥有 IAM 策略中的
controlcatalog:ListControls权限。 -
要在注册表中将自定义 Hook CloudFormation 注册为私有扩展,用户必须拥有 IAM 策略中的
cloudformation:RegisterType权限。
允许用户公开发布自定义 Hook
以下示例 IAM 策略特别侧重于发布功能。如果您需要允许用户在 CloudFormation 注册表中公开扩展(包括 Hook),请使用此政策。
重要
公开发布 Hook 可以让其他人使用 AWS 账户。确保只有经过授权的用户才拥有这些权限,并且已发布的扩展程序符合贵组织的质量和安全标准。
允许用户查看 Hook 调用结果
查看 Hook 调用结果所需的 IAM 权限会根据所请求的信息类型而变化。
列出 Hook 调用结果
要列出 Hook 调用结果,用户需要不同的权限,具体取决于发出的 API 请求。
-
要授予请求所有 Hook 结果、特定 Hook 的结果或特定挂钩和调用状态的结果的权限,您必须授予对该
cloudformation:ListAllHookResults操作的访问权限。 -
要通过指定 Hook 目标来授予请求结果的权限,必须授予
cloudformation:ListHookResults操作访问权限。此权限允许 API 调用者在调用时指定TargetType和TargetId参数ListHookResults。
以下是用于列出 Hook 调用结果的基本权限策略的示例。使用此策略的 IAM 身份(用户或角色)有权使用所有可用参数组合请求所有调用结果。
控制可以指定哪些更改集
以下示例 IAM 策略通过指定挂钩的目标向cloudformation:ListHookResults操作授予请求结果的权限。但是,如果目标是名为的更改集,它也会拒绝该操作example-changeset。
控制可以指定哪些挂钩
以下示例 IAM 策略仅在请求中提供挂钩的 ARN 时才向cloudformation:ListAllHookResults操作授予请求调用结果的权限。它拒绝对指定的 Hook ARN 执行操作。
允许用户查看详细的 Hook 调用结果
要授予查看特定 Hook 调用详细结果的权限,必须授予该cloudformation:GetHookResult操作的访问权限。此权限允许用户检索特定 Hook 调用结果的详细信息和补救指南。有关更多信息,请参阅《AWS CloudFormation API Reference》中的 GetHookResult。
以下示例 IAM 策略授予cloudformation:GetHookResult操作权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:GetHookResult" ], "Resource": "*" } ] }
注意
您可以将 Hook 配置为使用自己的密 AWS KMS 钥加密存储在云中的详细调用结果。有关如何设置使用客户托管密钥进行加密时所需的密钥策略和 IAM 权限的信息,请参阅AWS KMS 用于加密静态的 CloudFormation Hook 结果的密钥策略和权限。