Amazon web services 在CloudInformation中创建策略,授予从单独的AWS帐户访问s3存储桶的权限
我已经阅读了“在策略中指定主体”文档:,并从中推断出一些行为,以及其他一些与云信息无关的问题 当我试图创建一个策略,授予外国角色访问本地bucket的权限时,我仍然被这个错误难住了。Cloudformation的错误是:Amazon web services 在CloudInformation中创建策略,授予从单独的AWS帐户访问s3存储桶的权限,amazon-web-services,amazon-s3,amazon-cloudformation,amazon-iam,Amazon Web Services,Amazon S3,Amazon Cloudformation,Amazon Iam,我已经阅读了“在策略中指定主体”文档:,并从中推断出一些行为,以及其他一些与云信息无关的问题 当我试图创建一个策略,授予外国角色访问本地bucket的权限时,我仍然被这个错误难住了。Cloudformation的错误是:策略文档不应指定主体。 情况细分 我有两个AWS账户。帐户A创建了一个bucket,我想授予帐户B对它的写访问权 在帐户A Cloudformation中我创建了一个策略,授予帐户B角色访问所述存储桶的权限。导游。该角色存在于帐户B中 会计准则3政策: 类型:“AWS::IAM
策略文档不应指定主体。
情况细分
我有两个AWS账户。帐户A创建了一个bucket,我想授予帐户B对它的写访问权
在帐户A Cloudformation中我创建了一个策略,授予帐户B角色访问所述存储桶的权限。导游。该角色存在于帐户B中
会计准则3政策:
类型:“AWS::IAM::策略”
特性:
保单名称:AccountBWriteToS3Policy
政策文件:
版本:2012-10-17
声明:
-负责人:
AWS:'arn:AWS:iam::123456789876:role/AccountBRole'
效果:允许
行动:
-'s3:PutObject'
-'s3:ListBucket'
资源:!附属的
-“${bucketArn}/*”
-巴克特伦:!格塔特
-会计核算
-阿恩
角色:
-会计
但是,cloudformation无法执行,并返回一个错误
策略文档不应指定主体。
我相当困惑
有人能解释这个错误吗?
有人能为我们指明前进的道路吗?
这似乎是一个简单而常见的需求,有很多例子。也许我应该在bucket声明本身中指定策略,而不是创建一个帐户范围的策略?您需要创建一个角色,该角色具有原则的“信任策略”,然后是一个“权限策略”,以允许对S3 bucket进行读/写访问 下面是我的Cloudformation中的一个片段
Role:
Type: "AWS::IAM::Role"
Properties:
RoleName: !Sub '${RuleName}-Role'
Path: "/"
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal: !Sub 'arn:aws:iam::${AccountID}:user/*'
Action: sts:AssumeRole
RolePolicies:
Type: "AWS::IAM::ManagedPolicy"
Properties:
ManagedPolicyName: !Sub '${RuleName}-RolePolicies'
Roles:
- Ref: "Role"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- s3:Get*
- s3:Put*
- s3:List*
- s3:AbortMultipartUpload
Resource:
- !Ref Bucket
Ref:成功了,谢谢!看起来角色可以有主体(可以是其他角色),而策略只指定操作