Permissões do ElasticBeanstalk necessárias para implantar nova versão via AWS CLI

1

Eu tenho uma configuração de política do IAM que, a meu ver, forneceu as permissões certas para implantar uma nova versão em um aplicativo do Elastic Beanstalk. Ainda estou recebendo InsufficientPrivilegesException , especificamente:

aws elasticbeanstalk update-environment --environment-name LearnTfsBff --version-label LearnTfsBff-30

An error occurred (InsufficientPrivilegesException) when calling the UpdateEnvironment operation: Access Denied

Este é o conjunto de políticas para o usuário da implantação:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:*",
                "cloudformation:GetTemplate",
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStackResources",
                "autoscaling:*",
                "cloudfront:CreateInvalidation",
                "ec2:describeVpcs",
                "ec2:DescribeImages",
                "elasticbeanstalk:CreateApplicationVersion",
                "elasticbeanstalk:DescribeApplications",
                "elasticbeanstalk:DescribeApplicationVersions",
                "elasticbeanstalk:DescribeEnvironments",
                "elasticbeanstalk:UpdateEnvironment",
                "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
                "elasticloadbalancing:DescribeInstanceHealth",
                "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                "s3:ListAllMyBuckets",
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::learn-tfs-builds"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::learn-tfs-*"
        }
    ]
}

Eu tentei adicionar "elasticbeanstalk:*" como uma ação permitida e isso não resolveu o problema de privilégios. Eu adicionei "*" como permitido e isso resolve, mas não é uma solução permitida.

Como posso depurar quais permissões específicas são necessárias na AWS?

Obrigado,

Sam

    
por Sam 11.09.2017 / 07:18

1 resposta

1

De este guia , parece que você precisa de acesso S3 para o caule de pé de feijão elástico também, IE:

{
"Action": [
 "s3:PutObject",
 "s3:PutObjectAcl",
 "s3:GetObject",
 "s3:GetObjectAcl",
 "s3:ListBucket",
 "s3:DeleteObject",
 "s3:GetBucketPolicy",
 "s3:CreateBucket"
],
"Effect": "Allow",
"Resource": [
 "arn:aws:s3:::elasticbeanstalk-[region]-[accountid]",
 "arn:aws:s3:::elasticbeanstalk-[region]-[accountid]/*"
]
}
    
por 07.11.2017 / 01:34