gpt4 book ai didi

amazon-web-services - AWS Lambda S3 访问被拒绝

转载 作者:行者123 更新时间:2023-12-03 21:53:34 24 4
gpt4 key购买 nike

我有一个使用具有以下策略摘录的角色的 lambda 函数

{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::ipwl-lambda-config/*",
"arn:aws:s3:::ipwl-lambda-config"
]
}

我的存储桶策略如下所示
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::ipwl-lambda-config/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
},
{
"Sid": "AllowLambda",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountid:role/iam_for_lambda"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::ipwl-lambda-config/*",
"arn:aws:s3:::ipwl-lambda-config"
]
}
]
}

我在角色和存储桶策略上都允许使用 GetObject 和 ListBucket。但是当我的函数运行时
s3_obj = s3_res.Object(s3_bucket, s3_object)
我得到

[ERROR] ClientError: An error occurred (AccessDenied) when calling the GetObject operation: Access Denied



我还需要添加哪些权限?对象在那里,当我使用管理员角色在本地运行代码时,我可以获得它。

更新

我已经检查了几十次以确保存储桶和对象名称是正确的。根据堆栈跟踪,异常实际上来自这里的第二行
s3_res = boto3.resource('s3')
s3_obj = s3_res.Object(s3_bucket, s3_object)
data = s3_obj.get()['Body'].read()

KMS 应该只是 PutObject 的一个因素。我们有一个支持帐户,因此我可以与他们核对并更新他们的发现。

最佳答案

要从 S3 下载 KMS 加密的对象,您不仅需要能够获取该对象。您还需要能够解密 AWS KMS key 。

以下是您的 Lambda 函数应具有的 IAM 策略示例:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "s3get",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::ipwl-lambda-config/*"
},
{
"Sid": "kmsdecrypt",
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": "arn:aws:kms:example-region-1:123456789012:key/example-key-id"
}
]
}

key 策略还需要允许 IAM 角色解密 key ,如下所示:
{
"Sid": "kmsdecrypt",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:role/xyz"
},
"Action": "kms:Decrypt",
"Resource": "*"
}

关于amazon-web-services - AWS Lambda S3 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62314079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com