该问题可能是由于缺少密钥或无法访问密钥而导致的。一种解决方法是检查您的IAM角色是否具有访问S3和KMS密钥的权限。
您可能需要将以下策略附加到您的IAM角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1484689132000",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3:::example_bucket/*",
"arn:aws:s3:::example_bucket"
]
},
{
"Sid": "Stmt1484689508000",
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
]
}
]
}
在上面的代码中将 "example_bucket" 更改为您的 S3 存储桶的名称, "1234abcd-12ab-34cd-56ef-1234567890ab" 更改为您在 AWS KMS 中使用的主密钥的 ARN。
如果您是在 EC2 实例上运行代码,则可能需要将上述策略添加到您的 IAM 角色和 EC2 实例配置文件中。
另外,请务必确保正确设置密钥,并且密钥和存储桶是在同一区域中。