我尝试将 Amazon Kinesis Data Firehose 中的数据写入通过 AWS Key Management Service (AWS KMS) 加密的 Amazon Simple Storage Service (Amazon S3) 存储桶中。但是,我收到“访问被拒绝”错误消息。如何解决此问题?
解决方法
**重要提示:**请确保 Kinesis Data Firehose 的 AWS Identity and Access Management (IAM) 角色拥有相关的 Amazon S3 权限。有关 S3 权限的更多信息,请参阅授予 Kinesis Data Firehose 访问 Amazon S3 目标的权限。
要解决 Kinesis Data Firehose 中的“访问被拒绝”错误消息,请执行以下步骤:
1. 打开 AWS KMS 控制台。
2. 选择当前被用于加密您的 S3 存储桶的 KMS 密钥。
3. 选择 Switch to policy view(切换到策略视图)。
4. 检查并确认您在 KMS 密钥策略中拥有必要的权限。通过适当访问,您可以对写入 S3 存储桶的数据进行加密。
**注意:**有关 KMS 密钥策略的更多信息,请参阅使用 AWS Key Management Service (SSE-KMS) 中存储的 KMS 密钥进行服务器端加密以保护数据。
5. 更新您的策略,授予 Kinesis Data Firehose 对 KMS 密钥的访问权:
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account-ID>:role/<FirehoseRole>"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "<ARN of the KMS key>"
}
请务必指定加密 S3 存储桶的 KMS 密钥的 Amazon 资源名称 (ARN)。
6. 选择保存。
您还可以在不修改策略的情况下解决“访问被拒绝”错误消息。要解决此错误消息,请执行以下步骤:
1. 打开 AWS KMS 控制台。
2. 选择当前被用于加密您的 S3 存储桶的 KMS 密钥。
3. 在 **Key users(关键用户)**部分,选择 Add(添加)。
4. 选择您的 Kinesis Data Firehose 角色。
5. 选择 Add(添加)。 您现在已拥有从 Kinesis Data Firehose 向加密的 S3 存储桶写入数据的权限。
相关信息
编辑密钥