Insufficient delivery policy to s3 bucket: config-bucket-xxxxxxxxxxxx, unable to write to bucket, provided s3 key prefix is 'null', provided kms key is 'null'.
Config 会报这个错误主要原因有三个:存储桶权限不足、没有有效的 S3 存储桶前缀、KMS 密钥权限不足(看场景去判断,然后按照以下方法进行解决)
存储桶权限问题
AWS Config 服务需要以下权限才能将数据写入 S3 存储桶:
-
s3:PutObject
:将配置记录写入存储桶。 -
s3:GetBucketAcl
:获取存储桶的访问控制列表(ACL)。
如果存储桶策略没有包含这些权限,AWS Config 将无法写入数据。例如,以下是一个允许 AWS Config 写入数据的存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::(bucket-name)/*"
},
{
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::(bucket-name)"
}
]
}
S3 存储桶前缀问题
在 AWS Config 配置过程中,如果没有指定有效的 S3 前缀(用于存储配置记录的路径),AWS Config 将无法确定数据存储的位置。因此需要确保配置时提供了一个有效的 S3 前缀。但是这个是可选项,如果不是这个原因导致无法成功配置就可以不管
KMS 密钥配置问题
如果 S3 存储桶使用了 KMS 加密,那么 AWS Config 服务需要使用该 KMS 密钥来加密和解密数据。如果 KMS 密钥未正确配置或缺失,Config将无法写入加密的数据。确保 KMS 密钥策略允许 AWS Config 使用该密钥。例如:
{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:DescribeKey"
],
"Resource": "*"
}
]
}