【问题标题】:Update IAM policy for S3 bucket using cloudformation使用 cloudformation 更新 S3 存储桶的 IAM 策略
【发布时间】:2018-06-15 15:55:55
【问题描述】:

我们有一个用例:在创建新存储桶时更新 IAM 政策。

使用 cloudformation 模板创建新存储桶。

是否可以更新当前的 IAM 政策,例如使用 cloudformation 添加新的资源值?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-iam


    【解决方案1】:

    您必须将 SNS 主题配置到您的 cloudformation,cloudformation 将发布到 SNS 主题。配置 SNS 以调用将更新您的 IAM 策略的 Lambda 函数。

    为您提供所需的权限

    CloudFormation -> 向 SNS 发送通知

    SNS -> 调用你的 lambda

    Lambda 函数 -> 更新 IAM 策略

    【讨论】:

    • 我正在尝试在创建新的 S3 存储桶时创建 SNS 通知,您提供的序列我认为仅适用于现有资源。我们的用例是:创建一个新的 S3 存储桶并调用 Lambda 函数将新存储桶添加为新资源
    • 正如您所提到的,CloudFormation 将创建 S3 存储桶。 CloudFormation 将发布到 SNS 并将调用 lambda 函数,在 Lambda 中,您必须检查 CloudFormation 事件以获取 S3 存储桶或从描述 CloudFormation 后创建的 CloudFormation 资源中检查,当您发现 S3 存储桶处于创建完成状态时,然后更新IAM 政策
    • 谢谢 我面临的问题是如何发布到 SNS 以创建 S3 存储桶?我没有看到为创建存储桶指定的事件作为云形成的一部分 TopicConfigurations > 事件
    • CloudFormation 不提供特定于资源的事件,它会发送泛化通知,您必须在您的 lambda 函数中检查 S3 存储桶创建完成状态。
    • 替代方案,使用 CloudFormation CustomResource 创建存储桶并在同一 Lambda 函数中设置 IAM 策略,而不是 S3 存储桶资源。
    【解决方案2】:

    或者,您可以创建一个可以访问所有 S3 存储桶的组或角色,然后为每个 S3 存储桶创建一个新的 IAM 策略,并使用 GroupsRoles 属性分配给该组或角色AWS::IAM::Policy 资源。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2023-03-29
      • 2017-10-14
      • 2020-11-04
      • 2016-12-23
      • 2018-10-20
      相关资源
      最近更新 更多