我们使用 S3 存储桶在两家公司之间共享文件。我们创建了私有 S3 存储桶,并且我们为使用此存储桶的应用程序指定了专用用户(使用它的 aws_key 和 aws_secret)。我们发现我们没有权限访问 getObject,但我们成功地将 Object 放入了存储桶。
我还创建了对此存储桶具有权限的角色并将其分配给application_user,但这并不能解决问题。
因此,主要目标是让外部帐户和内部 IAM 用户对同一 S3 存储桶具有读取、列出、放置访问权限。我将指出,现在外部公司可以访问它,并且具有此策略。我没有访问外部 aws 帐户的权限。
下面是 s3 的资源策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SharedS3Bucket",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::199999999999:root", <--- external account
"arn:aws:iam::111111111111:user/application_user" <-- our application user
]
},
"Action": [
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::shared-bucket",
"arn:aws:s3:::shared-bucket/*"
]
}
]
}