繁体   English   中英

控制塔 AWS - 共享 s3 存储桶

[英]Control Tower AWS - Share s3 bucket

我最近开始使用 AWS 的 Control Tower 来管理我的多账户环境。

我目前的问题是:我有一个属于主账户的存储桶,我想与组织的一些账户共享控制台访问权限 我怎样才能做到这一点? 我尝试添加一个存储桶策略,指定帐户和附加到该帐户的 SSO 权限集,授予对存储桶的访问权限,但是当使用该角色访问 s3 时,我看不到该存储桶。

不过,我可以通过 CLI 访问存储桶,但不能通过 console 访问 即当通过 CLI 使用分配的角色访问时,我可以执行aws s3 ls s3://mybucket并显示其中的文件夹(其他命令也可以)。 但是在执行aws s3 ls ,未列出存储桶。

存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "123456789101",
                    "112131415161",
                ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::mybucket"
        }
    ]
}

权限集:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:*"
         ],
         "Resource": [
            "arn:aws:s3:::mybucket",
            "arn:aws:s3:::mybucket/*"
         ]
      }
   ]
}

有谁知道如何允许用户通过 s3 页面上的其他帐户存储桶和控制台列出它?

谢谢!!

戴安娜

据我了解 ControlTower,您不应该在 root 帐户中做任何有意义的事情。

此外,除非您允许其他用户“联合”到创建存储桶的同一帐户中,否则没有共享控制台访问权限。 使用 ControlTower 这通常通过单点登录 (SSO) 完成

我的建议是:创建一个共享服务/资源帐户,并允许您组织的任何成员访问这些资源。 通过使用新的AWS:PrincipalOrgID做到这一点。 例如,请参阅此 CloudFormation 代码段,了解 AWS 组织内具有sns:Publish权限的中央 SNS 队列。:

Resources:

  Topic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: Name
      TopicName: name

  TopicPolicy:
    Type: AWS::SNS::TopicPolicy
    Properties:
      Topics:
        - !Ref Topic
      PolicyDocument:
        Version: '2012-10-17'
        Statement:
          # default permission allow same account: https://www.terraform.io/docs/providers/aws/r/sns_topic_subscription.html
          - Sid: __default_statement_ID
            Effect: Allow
            Principal:
              AWS: "*"
            Action:
            - SNS:GetTopicAttributes
            - SNS:SetTopicAttributes
            - SNS:AddPermission
            - SNS:RemovePermission
            - SNS:DeleteTopic
            - SNS:Subscribe
            - SNS:ListSubscriptionsByTopic
            - SNS:Publish
            - SNS:Receive
            Resource: !Ref Topic
            Condition:
              StringEquals:
                AWS:SourceOwner: !Sub ${AWS::AccountId}        
          - Sid: SnsTopicPolicy
            Effect: Allow
            Principal:
              AWS: "*"
            Condition:
              StringEquals:
                # allow access from within your organization
                AWS:PrincipalOrgID: "o-xxxxxxxxxx"          
            Action: sns:Publish
            Resource: !Ref Topic

暂无
暂无

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

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