【问题标题】:What is the minimum policy needed to update and deploy an Elastic Beanstalk app?更新和部署 Elastic Beanstalk 应用程序所需的最低策略是什么?
【发布时间】:2016-02-19 21:33:15
【问题描述】:

我想通过我的持续部署系统 (Codeship) 在 Elastic Beanstalk 上更新和部署新版本,但还想锁定部署用户拥有的权限。

如果需要权限,最低设置是多少?

【问题讨论】:

  • 我开始问自己同样的问题。我正在从 bitbucket 管道将 dockerized 应用程序部署到 Beanstalk。我在这里查看了docs.aws.amazon.com/elasticbeanstalk/latest/dg/…,但政策中似乎包含了许多不必要的操作和资源。

标签: amazon-web-services amazon-elastic-beanstalk aws-cli


【解决方案1】:

此 IAM 策略提供执行“上传和部署”功能所需的所有权限:

  • 对于新的应用程序版本
  • 在指定的 Elastic Beanstalk 环境中。

替换以下内容:

  • 将 $REGION 替换为特定区域,例如:us-east-1
  • 将 $ACCOUNT 替换为帐号(不带破折号),例如:123456789012
  • 将 $APPLICATION 替换为特定的应用程序,例如:我的 Beanstalk 应用程序
  • 将 $ENVIRONMENT 替换为具体的环境,例如:My Beanstalk Environment

节点:如果您将日志推送到 CloudWatch,您将需要额外的策略。


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAutoscalingSuspendAndResumeProcesses",
      "Action": [
        "autoscaling:SuspendProcesses",
        "autoscaling:ResumeProcesses"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowElasticBeanstalkValidateConfigurationSettings",
      "Action": [
        "elasticbeanstalk:ValidateConfigurationSettings"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:environment/$APPLICATION/$ENVIRONMENT"
      ],
      "Condition": {
        "StringEquals": {
          "elasticbeanstalk:InApplication": [
            "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:application/$APPLICATION"
          ]
        }
      }
    },
    {
      "Sid": "AllowS3PutAndDeleteObjectInProperBucket",
      "Action": [
        "s3:Put*",
        "s3:Delete*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::elasticbeanstalk-$REGION-$ACCOUNT/*"
      ]
    },
    {
      "Sid": "AllowElasticBeanstalkCreateStorageLocation",
      "Action": [
        "elasticbeanstalk:CreateStorageLocation"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Sid": "AllowElasticBeanstalkCreateApplicationVersion",
      "Action": [
        "elasticbeanstalk:CreateApplicationVersion"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:applicationversion/$APPLICATION/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticbeanstalk:InApplication": [
            "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:application/$APPLICATION"
          ]
        }
      }
    },
    {
      "Sid": "AllowElasticBeanstalkUpdateEnvironment",
      "Action": [
        "elasticbeanstalk:UpdateEnvironment"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:environment/$APPLICATION/$ENVIRONMENT"
      ],
      "Condition": {
        "StringEquals": {
          "elasticbeanstalk:InApplication": [
            "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:application/$APPLICATION"
          ]
        },
        "StringLike": {
          "elasticbeanstalk:FromApplicationVersion": [
            "arn:aws:elasticbeanstalk:$REGION:$ACCOUNT:applicationversion/$APPLICATION/*"
          ]
        }
      }
    },
    {
      "Sid": "AllowElasticBeanstalkReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:Check*",
        "elasticbeanstalk:Describe*",
        "elasticbeanstalk:List*",
        "elasticbeanstalk:RequestEnvironmentInfo",
        "elasticbeanstalk:RetrieveEnvironmentInfo",
        "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*",
        "sqs:Get*",
        "sqs:List*"
      ],
      "Resource": "*"
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-15
    • 2017-07-06
    • 2020-02-25
    • 2021-04-28
    • 2016-11-20
    • 2015-09-21
    • 2020-09-02
    • 2012-06-23
    相关资源
    最近更新 更多