我們使用 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/*"
]
}
]
}