如何解决在 Kinesis Data Firehose 中写入 Amazon S3 存储桶时的“访问被拒绝”错误?

上次更新时间:2020 年 4 月 21 日

我尝试将 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.    选择切换到策略视图

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": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
}

6.    选择保存

您还可以在不修改策略的情况下解决“访问被拒绝”错误消息。要通过更新 IAM 角色来解决错误消息,请执行以下步骤:

1.    打开 AWS KMS 控制台

2.    选择当前被用于加密您的 S3 存储桶的 KMS 密钥。

3.    在密钥用户部分中,选择添加

4.    选择您的 Kinesis Data Firehose 角色。

5.    选择添加


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?