要使关联账户访问主账户中的S3资源,您需要执行以下步骤:
在主账户中创建一个S3存储桶,并确保已设置适当的权限策略。
在主账户中创建一个组织,并将关联账户添加到该组织。
在关联账户中创建一个IAM角色,并为该角色创建适当的权限策略。
将IAM角色与关联账户关联。
在关联账户中使用AWS SDK或CLI访问主账户中的S3资源。
以下是一个使用AWS CLI的代码示例:
在主账户中创建S3存储桶,并设置相应的权限策略:
aws s3api create-bucket --bucket my-bucket --region us-west-2
aws s3api put-bucket-policy --bucket my-bucket --policy '{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessFromOrg",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}'
在关联账户中创建IAM角色,并为该角色创建适当的权限策略:
aws iam create-role --role-name MyRole --assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "sts:AssumeRole"
}
]
}'
aws iam attach-role-policy --role-name MyRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
将IAM角色与关联账户关联:
aws organizations register-delegated-administrator --account-id 123456789012 --service-principal s3.amazonaws.com
aws organizations enable-aws-service-access --service-principal s3.amazonaws.com
aws organizations invite-account-to-join-organization --target-id 123456789012
在关联账户中使用AWS SDK或CLI访问主账户中的S3资源:
aws sts assume-role --role-arn arn:aws:iam::123456789012:role/MyRole --role-session-name MySession
然后,您可以使用返回的访问凭证来访问主账户中的S3资源。
请注意,上述示例中的123456789012
是主账户的AWS账户ID,您需要将其替换为实际的值。此外,您还可以根据您的具体要求自定义上述示例中的权限策略。