上次更新时间:2020 年 10 月 15 日
我尝试将 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 存储桶的数据进行加密。
注意:有关 AWS KMS 密钥策略的更多信息,请参阅使用 AWS Key Management Service (SSE-KMS) 中存储的 CMK 进行服务器端加密以保护数据。
5.更新您的策略,授予 Kinesis Data Firehose 对 KMS 密钥的访问权:
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account-ID>:role/<FirehoseRole>"
},
"Action": ,
"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 存储桶写入数据的权限。