Amazon web services 使用cloudformation更新S3存储桶的IAM策略

Amazon web services 使用cloudformation更新S3存储桶的IAM策略,amazon-web-services,amazon-cloudformation,amazon-iam,Amazon Web Services,Amazon Cloudformation,Amazon Iam,我们有一个用例:在创建新bucket时更新IAM策略 新bucket是使用cloudformation模板创建的 是否可以更新当前IAM策略,例如使用cloudformation添加新的资源值?您必须将SNS主题配置为您的cloudformation,cloudformation将发布到SNS主题。配置SNS以调用Lambda函数,该函数将更新IAM策略 向用户提供所需的权限 CloudFormation->向SNS发送通知 SNS->调用您的lambda Lambda Function->要更

我们有一个用例:在创建新bucket时更新IAM策略

新bucket是使用cloudformation模板创建的


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

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

向用户提供所需的权限

CloudFormation->向SNS发送通知

SNS->调用您的lambda


Lambda Function->要更新IAM策略

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

我正在尝试在创建新S3 bucket时创建SNS通知,我认为您提供的顺序仅适用于现有资源。我们的用例是:创建一个新的S3 bucket并调用Lambda函数将新bucket添加为一个新资源,正如您所提到的,CloudFormation将创建S3 bucket。CloudFormation将发布到SNS,它将调用lambda函数,在lambda中,您必须检查S3 Bucket的CloudFormation事件,或者从描述CloudFormation后创建的CloudFormation资源中进行检查,当您发现S3 Bucket处于创建完成状态时,然后更新IAM策略我面临的问题是如何发布到SNS以创建S3 bucket?我看不到在cloud formation TopicConfigurations>EventCloudFormation中为bucket创建指定的事件不提供特定于资源的事件,它将发送泛化通知,您必须在lambda函数中检查S3 bucket创建完成状态。或者,使用CloudFormation CustomResource创建存储桶,并在同一Lambda函数中设置IAM策略,而不是S3存储桶资源。