amazon-web-services - 跨账户访问的 AWS S3 存储桶控制策略
问题描述
我有一个名为“atest-bucket”的 S3 存储桶。在这个桶里面,我有一个名为“data”的目录。我需要从外部帐户向用户提供访问此目录的权限(此用户将访问我的数据以运行 AWS ElasticMapReduce 作业)。
使用我创建的策略,用户在尝试访问它时仍然得到 403:
拒绝访问(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;
这是我的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessToDataFiles",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::11111111111:user/emr",
"arn:aws:iam::11111111111:role/EMR_EC2_DefaultRole"
]
},
"Action": "s3:List*",
"Resource": "arn:aws:s3:::atest-bucket/data"
},
{
"Sid": "Stmt1234456",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::11111111111:user/emr",
"arn:aws:iam::11111111111:role/EMR_EC2_DefaultRole"
]
},
"Action": [
"s3:Get*",
"s3:List*",
"s3:Put*"
],
"Resource": "arn:aws:s3:::atest-bucket/data/*"
}
]
}
请帮我调查这个问题。
解决方案
我相信您授予了另一个帐户的权限(111----------)。在此帐户中,您需要将进一步的权限委派给您正在使用的特定用户。您需要将权限委派给您的用户才能访问以前帐户创建的存储桶。
为帐户中的用户创建内联策略(111----------):
{“版本”:“2012-10-17”,“声明”:[{“Sid”:“示例”,“效果”:“允许”,“操作”:[“s3:ListBucket”],“资源” : [ "arn:aws:s3:::examplebucket" ] } ] }
请参考以下网址: https ://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html
推荐阅读
- python - Pandas:基于多个不同的列创建列
- javascript - 如何在 JavaScript 中将 long 转换为 int?
- java - 从Java中的方法调用生成惰性流
- python - 当我单击一个按钮时,kivy recycleview 中的不同按钮会闪烁
- django - Django将字段错误添加到非模型表单字段
- java - 通过方法调用传递 Graphics g
- node.js - 如何让 Lambda 函数等待异步操作完成?
- javascript - 浏览器中的前端原始 TCP/UDP 套接字,在 2021 年有什么办法吗?
- azure - keyVaultClient - 获取秘密
- python - 在numpy中简明扼要地写向量表达式?