我正在尝试在目标组上运行此 cli:
aws elbv2 describe-target-health
此 IAM 政策不起作用:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1497933736509",
"Action": [
"elasticloadbalancing:DescribeTargetHealth"
],
"Effect": "Allow",
"Resource": "arn:aws:elasticloadbalancing:::*"
}
]
}
错误信息:
An error occurred (AccessDenied) when calling the DescribeTargetHealth operation
这有效:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1497933977893",
"Action": [
"elasticloadbalancing:DescribeTargetHealth"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
问题:为什么我必须使用 * 来包含所有 AWS 资源?我在这里错过了什么明显的东西吗?
在某些情况下,ARN 中的路径可以包含通配符或星号 (*)。但是您不能在指定资源类型的 ARN 部分中使用通配符。这是什么意思?
您可以指定“所有用户”:
您可以指定“所有 S3 存储桶”:
您可以指定“所有 AWS 资源”:
有效 ARN 列表记录在ARNS 和 AWS 服务命名空间页面。在
ELB/ALB
服务的情况下,唯一允许的 ARN 和资源是:在文档中,您可以使用红色的 ARN 组件。在
ELB/ALB
服务的情况下,您可以指定您自己的region
、account-id
、ELB
名称target-group-name/target-group-id
等。但是您不能编写您尝试过的内容,因为这不是有效的 ARN: