Групповая политика IAM для ограничения доступа к средам и версиям

У меня есть два приложения, развернутые в ElasticBeanstalk, распределенные по пяти различным средам.

Мне нужно ограничить доступ для команды разработчиков только для некоторых из этих сред, у них не должно быть никакого доступа к продукту - даже не должно быть видно.

Мне очень трудно отлаживать это и получать очень странные результаты при тестировании. Кажется, IAM "смущает себя" время от времени? Во время тестирования я получаю разные сообщения об ошибках, так что это еще более затрудняет тестирование и отладку.

Эта политика у меня до сих пор.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<mybeanstalkbucket>",
                "arn:aws:s3:::tecvirt",
                "arn:aws:s3:::<mybeanstalkbucket>/*",
                "arn:aws:s3:::tecvirt/*"
            ]
        },
        {
            "Sid": "Stmt2",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:ListBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Stmt5",
            "Action": [
                "elasticbeanstalk:Describe*",
                "elasticbeanstalk:CreateApplicationVersion",
                "elasticbeanstalk:DeleteApplicationVersion",
                "elasticbeanstalk:UpdateApplicationVersion",
                "elasticbeanstalk:UpdateApplication",
                "elasticbeanstalk:RestartAppServer",
                "elasticbeanstalk:SwapEnvironmentCNAMEs",
                "elasticbeanstalk:UpdateEnvironment",
                "elasticbeanstalk:UpdateApplicationVersion",
                "elasticbeanstalk:Check*",
                "elasticbeanstalk:List*",
                "elasticbeanstalk:RequestEnvironmentInfo",
                "elasticbeanstalk:RetrieveEnvironmentInfo"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:elasticbeanstalk:us-east-1::solutionstack/*",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:environment/tecvirt-app/mock",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:environment/tecvirt-app/hmlg2",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:environment/tecvirt-scheduler/hmlg",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:applicationversion/tecvirt-app/*",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:applicationversion/tecvirt-scheduler/*"
            ]
        },
        {
            "Sid": "Stmt4",
            "Effect": "Allow",
            "Action": [
                "elasticbeanstalk:Describe*",
                "elasticbeanstalk:Check*",
                "elasticbeanstalk:List*",
                "elasticbeanstalk:RequestEnvironmentInfo",
                "elasticbeanstalk:RetrieveEnvironmentInfo",
                "elasticbeanstalk:ValidateConfigurationSettings"
            ],
            "Resource": [
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:application/tecvirt-app",
                "arn:aws:elasticbeanstalk:us-east-1:<myaccount>:application/tecvirt-scheduler"
            ]
        },
        {
            "Sid": "Stmt3",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:Describe*",
                "ec2:Describe*",
                "autoscaling:Describe*",
                "cloudwatch:Describe*",
                "cloudwatch:List*",
                "cloudwatch:Get*",
                "sns:Get*",
                "sns:List*",
                "cloudformation:Describe*",
                "cloudformation:Get*",
                "cloudformation:List*",
                "cloudformation:Validate*",
                "cloudformation:Estimate*",
                "rds:Describe*",
                "sqs:Get*",
                "sqs:List*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

И это сообщение об ошибке, которое я получаю:

A problem occurred while loading your page: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 7CDFC747CB76D158)

... что очень мало помогает, так как не говорит мне, какого разрешения мне не хватает. В любом случае, не должно быть ни одного, поскольку я дал с помощью политики почти все мыслимые разрешения на доступ к папке Beanstalk для группы.

И еще одна странная вещь: если я войду с пользователем в этой группе и получу доступ к S3, я смогу свободно получить доступ к папке и всем ее объектам.

0 ответов

Другие вопросы по тегам