【问题标题】:Restrict AWS Elastic Beanstalk IAM Role to full access for one Application将 AWS Elastic Beanstalk IAM 角色限制为一个应用程序的完全访问权限
【发布时间】:2016-12-08 23:53:14
【问题描述】:

我正在尝试向 IAM 密码用户授予对 Elastic Beanstalk 应用程序的完全访问权限(创建/修改/删除环境)。遵循 AWS 文档 here 导致用户能够看到应用程序但无法查看环境或创建新环境(消息:访问被拒绝,没有进一步说明)。

这是附加的当前政策:

{
"Version": "XXX-XX-XX",
"Statement": [
    {
        "Sid": "StmtXXXXXXXXX",
        "Effect": "Allow",
        "Action": [
            "elasticbeanstalk:*",
            "autoscaling:*"
        ],
        "Resource": [
            "arn:aws:elasticbeanstalk:eu-west-1:<accountId>:application/<app-name>",
            "arn:aws:elasticbeanstalk:eu-west-1:<accountId>:applicationversion/<app-name>",
            "arn:aws:elasticbeanstalk:eu-west-1:<accountId>:environment/<app-name>/*",
            "arn:aws:elasticbeanstalk:us-west-1::solutionstack/*"
        ]
    },
    {
        "Action": [
            "elasticbeanstalk:CheckDNSAvailability",
            "elasticbeanstalk:CreateStorageLocation",
            "autoscaling:DescribeAutoScalingGroups"
        ],
        "Effect": "Allow",
        "Resource": "*"
    }
]

}

有人做过吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk roles amazon-iam


    【解决方案1】:

    这是我使用的。我不能被要求进一步分离它。您也可以使用标签。

    我做的更多是在单独的帐户中运行越来越多的东西。如果有单独的应用程序,则几乎没有理由将它们放在同一个帐户中。您可以对用户进行跨账户访问。 https://aws.amazon.com/blogs/security/how-to-enable-cross-account-access-to-the-aws-management-console/

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "ec2:Describe*",
                    "elasticloadbalancing:Describe*",
                    "autoscaling:Describe*",
                    "cloudwatch:Describe*",
                    "cloudwatch:List*",
                    "cloudwatch:Get*",
                    "s3:Get*",
                    "s3:List*",
                    "sns:Get*",
                    "sns:List*",
                    "cloudformation:Describe*",
                    "cloudformation:Get*",
                    "cloudformation:List*",
                    "cloudformation:Validate*",
                    "cloudformation:Estimate*",
                    "rds:Describe*",
                    "elasticbeanstalk:CreateStorageLocation",
                    "sqs:Get*",
                    "sqs:List*",
                    "autoscaling:SuspendProcesses",
                    "autoscaling:ResumeProcesses",
                    "autoscaling:UpdateAutoScalingGroup",
                    "autoscaling:DescribeAutoScalingGroups",
                    "cloudformation:UpdateStack",
                    "cloudformation:DescribeStacks",
                    "ec2:AuthorizeSecurityGroupIngress",
                    "ec2:RevokeSecurityGroupIngress",
                    "s3:PutObject",
                    "s3:DeleteObject",
                    "s3:PutObjectAcl"
                ],
                "Resource": [
                    "*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                    "elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
                ],
                "Resource": [
                    "arn:aws:elasticloadbalancing:eu-west-1:12345678910:loadbalancer/*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "elasticbeanstalk:Check*",
                    "elasticbeanstalk:Describe*",
                    "elasticbeanstalk:List*",
                    "elasticbeanstalk:RequestEnvironmentInfo",
                    "elasticbeanstalk:RetrieveEnvironmentInfo",
                    "elasticbeanstalk:CreateApplicationVersion",
                    "elasticbeanstalk:CreateConfigurationTemplate",
                    "elasticbeanstalk:UpdateApplicationVersion",
                    "elasticbeanstalk:UpdateConfigurationTemplate",
                    "elasticbeanstalk:UpdateEnvironment",
                    "elasticbeanstalk:DescribeEnvironmentResources",
                    "elasticbeanstalk:ValidateConfigurationSettings"
                ],
                "Resource": [
                    "*"
                ],
                "Condition": {
                    "StringEquals": {
                        "elasticbeanstalk:InApplication": [
                            "arn:aws:elasticbeanstalk:eu-west-1:12345678910:application/My App"
                        ]
                    }
                }
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-03
      • 2022-08-18
      • 2014-12-30
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2016-04-14
      相关资源
      最近更新 更多