使用带有别名的 KMS 加密存储桶中的 s3:GetObject
Using s3:GetObject from KMS encrypted Bucket with an Alias
我正在尝试使用 KMS 密钥别名从 S3 获取对象,该对象在 put 对象使用相同策略时不起作用。我的政策如下所示
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::primary-db-backups-XXXXX"
},
{
"Sid": "AllowGetPutPostgresBackups",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::primary-db-backups-XXXXX/*"
]
},
{
"Sid": "AllowS3KMS",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:RequestAlias": "alias/infra_s3_key"
}
}
}
]
}
我得到的错误是
download failed: s3://primary-db-backups-XXXXX/ip15000_2021-10-19T02-37-52.sql to - An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
如果我将 KMS 密钥 ARN 放入资源中,它就会起作用。我不确定为什么 GetObject 不工作而 PutObjects 工作。
这可能是因为 S3 通过其 ARN 而不是 alias
调用 KMS 密钥。仅当 S3 对 KMS 的 API 调用本身使用 alias/infra_s3_key
时,您才可以使用 alias/infra_s3_key
。但它可能使用密钥 ARN,因此只有使用 KMS 密钥 ARN 的条件才有效。
我正在尝试使用 KMS 密钥别名从 S3 获取对象,该对象在 put 对象使用相同策略时不起作用。我的政策如下所示
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::primary-db-backups-XXXXX"
},
{
"Sid": "AllowGetPutPostgresBackups",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::primary-db-backups-XXXXX/*"
]
},
{
"Sid": "AllowS3KMS",
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:RequestAlias": "alias/infra_s3_key"
}
}
}
]
}
我得到的错误是
download failed: s3://primary-db-backups-XXXXX/ip15000_2021-10-19T02-37-52.sql to - An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
如果我将 KMS 密钥 ARN 放入资源中,它就会起作用。我不确定为什么 GetObject 不工作而 PutObjects 工作。
这可能是因为 S3 通过其 ARN 而不是 alias
调用 KMS 密钥。仅当 S3 对 KMS 的 API 调用本身使用 alias/infra_s3_key
时,您才可以使用 alias/infra_s3_key
。但它可能使用密钥 ARN,因此只有使用 KMS 密钥 ARN 的条件才有效。