Política do AWS IAM para elasticloadbalancing: DescribeTargetHealth

1

Estou tentando executar esse cli em um grupo-alvo:

aws elbv2 describe-target-health

Esta política do IAM não funciona:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1497933736509",
      "Action": [
        "elasticloadbalancing:DescribeTargetHealth"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:elasticloadbalancing:::*"
    }
  ]
}

Mensagem de erro:

An error occurred (AccessDenied) when calling the DescribeTargetHealth operation

Isso funciona:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1497933977893",
      "Action": [
        "elasticloadbalancing:DescribeTargetHealth"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Pergunta: por que preciso usar * para incluir todos os recursos da AWS? Eu senti falta de algo óbvio aqui?

    
por starchx 20.06.2017 / 06:55

1 resposta

1

Em algumas circunstâncias, os caminhos nos ARNs podem incluir um caractere curinga ou um asterisco (*). Mas você não pode usar um curinga na parte do ARN que especifica o tipo de recurso. O que significa isso?

Você pode especificar "todos os usuários":

"Resource": "arn:aws:iam::123456789012:user/*"

Você pode especificar "todos os buckets do S3":

"Resource": "arn:aws:s3:::*"

Você pode especificar "todos os recursos da AWS":

"Resource": "*"

A lista de ARNs válidos está documentada em ARNS e namespaces do AWS Service página. No caso de ELB/ALB service, os únicos ARNs e recursos permitidos são:

arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
arn:aws:elasticloadbalancing:region:account-id:listener/app/load-balancer-name/load-balancer-id/listener-id
arn:aws:elasticloadbalancing:region:account-id:listener-rule/app/load-balancer-name/load-balancer-id/listener-id/rule-id
arn:aws:elasticloadbalancing:region:account-id:targetgroup/target-group-name/target-group-id
arn:aws:elasticloadbalancing:region:account-id:loadbalancer/name

Na documentação, os componentes do ARN na cor vermelha são aqueles com os quais você pode brincar. No caso de ELB/ALB service, você pode especificar seus próprios region , account-id , ELB nome, target-group-name/target-group-id etc. etc. Mas você não pode escrever algo como você tentou, pois este não é um ARN válido :

"Resource": "arn:aws:elasticloadbalancing:::*"
    
por 20.06.2017 / 10:41