【发布时间】:2022-06-16 22:02:36
【问题描述】:
我编写了一个需要从 S3 读取一些数据的 Lambda。它执行一个简单的 S3 GetObject 调用:
S3Object s3Object = s3Client.getObject(new GetObjectRequest(bucket, key));
InputStream stream = s3Object.getObjectContent();
与 Lambda 关联的 IAM 角色确实对特定存储桶具有 S3:getObject 权限。我还检查了存储桶,发现它没有启用任何加密[下图]。
然而,当我尝试读取对象时,出现以下错误:
The ciphertext refers to a customer master key that does not exist,
does not exist in this region, or you are not allowed to access.
(Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ENNR3WCCYG4CZ3M1)
我在这里缺少什么?读取这个对象需要做什么?
【问题讨论】:
-
存储桶中的对象仍然可以使用 KMS 加密,即使它不是存储桶的默认设置。
标签: amazon-web-services amazon-s3 lambda amazon-kms