使用terraform我能够创建S3桶与KMS加密启用。但是,当我试图从启用S3 KMS的bucket下载任何文件时,它都无法下载,因为访问被拒绝
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
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"
}
}
}
}
{
"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-KINESIS2.11-2.3.1.JAR s3://Services-1234567890-CICD-Storage/tesie_jars/
您需要授权访问IAM策略中的KMS密钥。
我不能百分之百确定您需要哪些权限,但从这些权限开始(我碰巧知道这组可以工作,因为我从一个工作策略中复制了它,但它可能包括不需要的权限):
{
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:DescribeKey",
"kms:Encrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:GetKeyPolicy",
"kms:ListGrants",
"kms:ListKeyPolicies",
"kms:ListRetirableGrants",
"kms:ReEncryptFrom",
"kms:ReEncryptTo"
],
"Resource": "arn:aws:kms:REDACTED:REDACTED:key/REDACTED"
},
{
"Effect": "Allow",
"Action": [
"kms:GenerateRandom",
"kms:ListAliases",
"kms:ListKeys"
],
"Resource": "*"
}
我有一个配置了加密功能的存储桶: 加密密钥类型:AWS密钥管理服务密钥(SSE-KMS) 使用AWS托管密钥(AWS/s3)。Bucket加密配置: 我有一个nodejs项目,使用streams在S3 bucket上上传/下载文件。问题是,我可以成功上传,但当我尝试使用stream下载/获取文件时,它只会发出一次“data”事件,之后会发出“end”事件,但仍有数据需要使用,如下面的日志所示。你知
我无法从亚马逊S3桶加载雪花中的外部表。外部表创建成功,但在运行select命令时,不会返回任何内容。奇怪的是COPY into命令对雪花中的同一个表起作用。 谢谢,纳维德
我正在尝试使用AmazonS3服务器端加密(KMS)多部分上传一个文件。我有点困惑,我的代码中是否需要KMS键,如果需要,那么我如何将它添加到Java代码中呢? --更新私有静态void saveMultipartData(String clientRegion,String bucketName,String awsFilePath,File File){AmazonS3 s3client=Am
运行上述代码后出现以下错误。请帮忙做这件事。。正在将源和目标文件名作为S3属性中的参数传递。。。 在处理上述异常时,发生了另一个异常: 回溯(最后一次调用):文件“C:\Cloudtail\CT\SQL Scripts\python\GRN\u S3\u dwnld.py”,第17行,除了botocore.exception.ClientErrors as e:NameError:未定义名称“bo
我已使用IAM角色启动了一个ec2实例,并将以下策略与IAM角色关联。 然而,当我试图从ec2-实例中使用aws cli下载文件时,我一直拒绝访问。 当我模拟策略并对bucket中的对象执行操作时,会收到消息“allowed”。当我访问时,我可以看到正确的实例配置文件附在实例上http://169.254.254/latest-metadata/iam/info 我有什么明显的遗漏吗?
根据AWS文档中提供的资源,可以通过以下代码下载对象: 编辑 我将更改为,它打开了pdf,但现在我需要下载它
我目前正在S3中存储和下载我的Thymeleaf模板。 我使用以下函数从S3检索模板: 执行此操作后,文件将成功下载到所需位置。 但是当试图从FlyingSaucer PDF生成器访问文件时,该文件不存在,尽管它已经在FILE_LOCATION_PATH下载。(我可以打开文件...文件在那里,但函数看不到它) 当我一次又一次地运行程序时,我得到了相同的结果。但是当我停止程序并再次运行它时,一切都正
我使用Maven和surefire插件通过扩展AbstractTestNGSpringContextTests来运行TestNG测试,结果显示,即使上下文在类路径中也没有加载,并且测试在我的ide中正常工作,但在Maven中不行。 @contextConfiguration(locations=Array(“classpath*:/com/gottex/gottware/server/offlin