我想让IAM用户可以从S3存储桶下载文件,但在执行aws S3 sync S3://
创建了一个名为s3完全访问的用户
在my CLI中执行aws configure
,并为上述用户输入生成的访问密钥id和机密访问密钥
- 创建了一个bucket策略(如下所示),我希望它能够授予在第一步中创建的用户访问权限
我的bucket有一个文件夹名AffectivaLogs,其中的文件是由不同的用户匿名添加的,看起来虽然bucket是公共的,但里面的文件夹不是,我甚至无法将其公开,这导致了以下错误。
以下是公共访问设置:
更新:我更新了bucket策略,如下所示,但它不起作用。
您可以使用所需的主体配置S3策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountId:user/*
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket"
},
{
"Sid": "GetObjects",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountId:user/*
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
或者,您可以创建IAM策略并将其附加到角色
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::bucket"
},
{
"Sid": "GetObject",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
如果您在bucket上使用启用了KMS加密,那么还应该添加允许您使用KMS密钥解密数据的策略。
为了测试情况,我做了以下操作:
然后我运行了aws s3 sync
,访问被拒绝。
然后我修改了策略,允许访问bucket本身:
{
"Id": "Policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "statement",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket/*",
"arn:aws:s3:::my-bucket"
],
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:user/stack-user"
]
}
}
]
}
这起作用了。
底线:除了bucket的内容之外,还添加访问bucket的权限。(我怀疑这是因为除了访问对象本身之外,awss3sync
还需要列出bucket内容。)
我正在一个项目中工作,目标是从amazon S3获取报告。目前,我正在尝试访问S3位置,以检查我的可用桶列表。 我在python中工作,我已经在提示符下设置了所有凭据:aws configure。 在我的python文件中,当我尝试列出我所有的bucket时: 我得到了这个错误: 回溯(最后一次调用):文件“C:\Users\bakpovo\testAmazon.py”,第3行,在s3中的buck
在此处输入代码:调用ListBucket操作时出错(AccessDenied):拒绝访问 但我有一个IAM策略集,并使用aws CLI和--profile,该配置文件附带了该策略。IAM政策:
我有一个flask应用程序,它调用boto3上传文件来将文件上传到S3存储桶。我以IAM用户的身份打这个电话,因为只有经过身份验证的用户才能进行多部分上传。 下面是将文件上传到S3 bucket的python代码部分: S3存储桶策略: IAM用户策略: 我已将以下权限分配给IAM用户以及AmazonS3FullAccess(AWS管理策略)- 然而,我仍然看到错误-“调用PutObject操作时
我是AWS Lambda的新手。我正在尝试从https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html.当用户将jpg上传到名为greetingsproject的S3 bucket时,会触发lambda函数。 错误:9a62ff86-3e24-491d-852e-DED2C2CF5D94 信息:获取对象时出错=拒绝访问:拒绝访
我试图在s3中使用boto3创建一个bucket,但收到了ClientError:调用CreateBucket操作时出错(AccessDenied):拒绝访问。 我已经通过aws配置设置了我的aws cli凭据。这是我的权限摘要: 这是我的代码: 我希望能够在不被拒绝访问的情况下创建一个bucket
为什么我不能上传到我的桶里?