繁体   English   中英

在Cloudformation中创建策略,以授予对来自单独AWS账户的s3存储桶的访问权限

[英]Create Policy in Cloudformation Granting Access to s3 Buckets From Separate AWS Account

我已经阅读了“在策略中指定主体”文档: https : //docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html ,并且正在推断那里的一些行为以及其他SO(例如,从s3的getObject时拒绝aws lambda函数访问 )这些问题没有专门处理Cloudformation。

当我尝试创建一个允许外部角色访问本地存储桶的策略时,我仍然为这个错误感到困惑。 来自Cloudformation的错误是: Policy document should not specify a principal.

情况明细

我有两个AWS账户。 帐户A创建了一个存储桶,我想授予帐户B对它的写入权限。

在帐户A Cloudformation中,我创建了一个策略,该策略授予帐户B角色对该存储桶的访问权限。 来自https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html的指南。 该角色存在于帐户B。

AccountBWriteToS3Policy: Type: 'AWS::IAM::Policy' Properties: PolicyName: AccountBWriteToS3Policy PolicyDocument: Version: 2012-10-17 Statement: - Principal: AWS: 'arn:aws:iam::123456789876:role/AccountBRole' Effect: Allow Action: - 's3:PutObject' - 's3:ListBucket' Resource: !Sub - '${bucketArn}/*' - bucketArn: !GetAtt - AccountABucket - Arn Roles: - AccountARole

但是,cloudformation无法执行,并且回滚并显示错误。Policy Policy document should not specify a principal.

我很沮丧。

谁能解释这个错误?

谁能规定前进的道路?

这似乎是一个简单而普遍的需求,在许多示例中都涉及到。 也许我应该在存储桶声明本身中指定该策略,而不是创建一个帐户范围的策略?

您需要创建一个具有“信任策略”和“原则”的角色,然后创建一个“权限策略”,以允许对S3存储桶进行读/写访问。

这是我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

参考: 跨帐户教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM