在AWS中,跨账户访问存储桶是一种安全措施,可确保存储桶仅被授权的实体访问。我们可以使用外部ID来实现这个目的。
想要实现这个方法,首先要保证在目标账户上开启了S3存储桶服务。我们将以存储桶名“target-bucket”为例。
1.创建角色并配置信任关系。 我们可以创建一个名为"access-role"的角色,并配置信任关系。这里以AWS账户ID为"012345678901"为例,角色名为"source-access-role",并将此角色附加到源账户上(Identity and Access Management(IAM))。以下是角色配置文本示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::012345678901:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "target-account-external-id"
}
}
}
]
}
2.在源账户中创建S3存储桶并配置策略。 在源账户中创建S3存储桶,并在桶策略中指定allow访问该桶的角色ARN。在此处,我们将存储桶名为"source-bucket",角色名为"source-access-role"。以下是桶策略配置文本示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::012345678901:role/source-access-role"
},
"Action": "