【发布时间】:2018-08-15 18:50:18
【问题描述】:
我正在尝试从 EC2 微型实例创建 Firehose 传输流。
AWS CLI 配置有 IAM 用户 ABC 的访问密钥。此用户附加了 AWS 策略,并具有对 firehose 的完全访问权限(策略复制如下)。
流创建仍然失败并出现错误AccessDeniedException: iam user ABC not authorized to perform: firehose:CreateDeliveryStream on resource xxxx with an explicit deny
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"firehose:*",
"firehose:CreateDeliveryStream"
],
"Resource": [
"arn:aws:firehose:us-east-1:<ACC_ID>:deliverystream/*",
"arn:aws:firehose:us-east-1:<ACC_ID>:*",
"arn:aws:firehose:*:<ACC_ID>:*",
"arn:aws:firehose:*:<ACC_ID>:deliverystream/*"
]
}
]
}
我是否需要为此 IAM 用户添加更多权限以允许其创建传输流?
【问题讨论】:
-
您是否对该用户附加了任何其他策略,它是否属于任何组?看起来有明确的拒绝政策。
-
仔细检查附加到用户的策略(直接或通过组/内联)。此外,在 EC2 上显式保存用户密钥也是一个坏主意。考虑创建一个具有相关 Firehose 访问权限的角色并将其附加到实例。
-
@Abi:如何通过角色在 EC2 上使用 AWS CLI? AWS Configure 中提到的所有步骤都指向添加密钥以启用 CLI 使用。
-
@Paladin - 如果您在 EC2 上运行 CLI 命令,它会获取提供给实例角色的权限。您无需添加密钥 (aws configure) 即可使用它。在 Amazon Linux 实例上,它是预安装的。更多在这里 - docs.aws.amazon.com/cli/latest/userguide/…
标签: amazon-web-services amazon-iam amazon-kinesis-firehose