[英]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.