Anotações sobre o AWS IAM Policy - Troubleshooting para ajudar na preparação das certificações AWS.
Até o momento as anotações são para as certificações abaixo:
JSON Error Bucket S3
{
    "Statement": {
        "Effect": "Allow",
        "Action": "*",
        "Resource": "arn:aws:s3:::examplebucket",
        "Resource": "arn:aws:s3:::examplebucket/*"
    }
}
Resolução
- Só pode haver 1 Resource
 - Inserir o Version
 - Tabular e inserir os Resources em []
 
Policy corrigida
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "*",
            "Resource": [
                "arn:aws:s3:::nomedobucket",
                "arn:aws:s3:::nomedobucket/*"
            ]
        }
    ]
}
IAM Policy user access
{
    "Statement": [
        {
            "Action": [
                "iam:*AccessKey*"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iam::id-conta-aws:user/${aws:username}"
            ]
        }
    ]
}
Resolução
- Por não estar difinido na policy o Version está com o padrão 
"Version": "2008-10-17"e os Elementos da Policy são compativeis somente na nova versão -"Version": "2012-10-17" - Alterar a variável ${aws:username} para o _username _estático
 
Policy corrigida - Sem Version
{
    "Statement": [
        {
            "Action": [
                "iam:*AccessKey*"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iam::id-conta-aws:user/username"
            ]
        }
    ]
}
Policy corrigida - Com Version
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "iam:*AccessKey*"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iam::id-conta-aws:user/${aws:username}"
            ]
        }
    ]
}
Policy acesso CloudFront
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": "cloudfront:*",
        "Resource": [
            "arn:aws:cloudfront:*"
        ]
    }]
}
Resolução
- Cada serviço da AWS pode definir ações, recursos e chaves de contexto de condição para uso em políticas do IAM. No caso do CloudFront basta especificar "*" no Resource.
 
Policy corrigida
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": "cloudfront:*",
        "Resource": "*"
    }]
}
Bucket Policy
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow"
        "Action": "s3:*"
        "Resource": [
            "*"
        ]
    }]
}
Resolução
- Validação da estrutura da Policy, falta a "," no Effect
 
Policy corrigida
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": [
            "*"
        ]
    }]
}
Policy 5
{
      "Version": "2012-10-17",
      "Statement": {
         "Effect":"Allow",
         "Action":"ec2:Describe*",
         "Resource":"*"
      }
}
{ 
      "Statement": {
         "Effect": "Allow",
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::my-bucket/*"
      }
}
Resolução
- Só pode haver 1 statement
 - Quebrar a Police em Blocos c/ []
 
Policy corrigida
{
      "Version": "2012-10-17",
      "Statement": [{
         "Effect":"Allow",
         "Action":"ec2:Describe*",
         "Resource":"*"
      },
      {
         "Effect": "Allow",
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::my-bucket/*"
       }
      ]
}

    
Top comments (0)