【发布时间】:2019-06-15 05:13:50
【问题描述】:
使用 terraform,我可以创建启用 KMS 加密的 S3 存储桶。但是当我尝试从启用 S3 KMS 的存储桶中下载任何文件时,它无法下载说 Access Denied
错误日志:-
download failed: s3://services-1234567890-cicd-storage/jars/jdbc-0.211.jar to utilities/jdbc-0.211.jar An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
main.tf
resource "aws_s3_bucket" "s3_bucket_two" {
bucket = "dev-analytics-data"
# bucket = "services-${lookup(var.aws_account_id, terraform.workspace)}-cicd-storage"
acl = "${var.acl}"
versioning {
enabled = "${var.enable_versioning}"
}
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
kms_master_key_id = "${data.terraform_remote_state.kms_s3.key_arn}"
sse_algorithm = "aws:kms"
}
}
}
}
使用的 IAM 政策:-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::12345678910:role/iam_role_devops_engineer",
"arn:aws:iam:: 12345678910:role/EMR_AutoScaling_DefaultRole",
"arn:aws:iam:: 12345678910:role/EMR_DefaultRole",
"arn:aws:iam:: 12345678910:user/iam_user_cng_jenkins",
"arn:aws:iam:: 12345678910:role/iam_role_sftp",
"arn:aws:iam:: 12345678910:role/iam_role_jenkins_user",
"arn:aws:iam:: 12345678910:role/EMR_EC2_DefaultRole"
]
},
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::services-12345678910-cicd-storage",
"arn:aws:s3:::services-12345678910-cicd-storage/*"
]
}
]
}
我也尝试通过 aws cli 上传,但仍然失败。
aws s3 cp --sse aws:kms --sse-kms-key-id arn:aws:kms:eu-central-1:1234567890:key/123asdps-as34-as23-asas-aslkui98393 spark-sql-kinesis_2.11-2.3.1.jar s3://services-1234567890-cicd-storage/tesie_jars/
【问题讨论】:
-
请参阅aws.amazon.com/premiumsupport/knowledge-center/…上的“对象由 AWS KMS 加密”部分
标签: amazon-web-services amazon-s3 terraform aws-cli aws-kms