

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 基于托管式策略的示例策略
<a name="ExamplePolicies_AEB"></a>

本节演示如何控制用户访问权限， AWS Elastic Beanstalk 并包括为常见场景提供所需访问权限的示例策略。这些策略派生自 Elastic Beanstalk 托管式策略。有关将托管式策略附加到用户和组的信息，请参见[管理 Elastic Beanstalk 用户策略](AWSHowTo.iam.managed-policies.md)。

在此情景中，Example Corp. 是一家软件公司，有三个团队负责公司网站：即管理基础设施的管理员团队、构建网站软件的开发人员团队及测试网站的 QA 团队。为帮助管理他们的 Elastic Beanstalk 资源权限，Example Corp. 公司创建了每个相应团队成员所属的三个组：管理员组、开发人员组和测试人员组。Example Corp. 公司可为管理员组提供针对所有应用程序、环境及其底层资源的完全访问权限，以便他们创建、诊断和删除所有 Elastic Beanstalk 资产。开发人员需要获取查看所有 Elastic Beanstalk 资产以及创建并部署应用程序版本的权限。开发人员不能创建新应用程序或环境，也不能终止正在运行的环境。测试人员需要查看所有 Elastic Beanstalk 资源来监控和测试应用程序。测试人员不应具有更改任何 Elastic Beanstalk 资源的权限。

以下示例策略为每个组提供了所需权限。

## 示例 1：管理员群组 — 所有 Elastic Beanstalk 及相关服务 APIs
<a name="ExamplePolicies_AEB.admin"></a>

以下策略向用户授予使用 Elastic Beanstalk 时必需的所有操作权限。此策略还允许 Elastic Beanstalk 代表您在以下服务中配置和管理资源。在创建环境时，Elastic Beanstalk 依靠这些附加服务来配置底层资源。
+ Amazon Elastic Compute Cloud
+ Elastic Load Balancing
+ Auto Scaling
+ Amazon CloudWatch
+ Amazon Simple Storage Service
+ Amazon Simple Notification Service
+ Amazon Relational Database Service
+ CloudFormation

请注意，此策略是一个示例。它为 AWS 服务提供了宽泛的权限，Elastic Beanstalk 可使用这些权限管理应用程序和环境。例如，`ec2:*`允许 AWS Identity and Access Management (IAM) 用户对 AWS 账户中的任何 Amazon EC2 资源执行任何操作。这些权限并不限于与 Elastic Beanstalk 配合使用的资源。作为最佳实践，您仅应向个人授予他们履行职责所需的权限。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "elasticbeanstalk:*",
        "ec2:*",
        "elasticloadbalancing:*",
        "autoscaling:*",
        "cloudwatch:*",
        "s3:*",
        "sns:*",
        "rds:*",
        "cloudformation:*"
      ],
      "Resource" : "*"
    }
  ]
}
```

------

## 示例 2：开发人员组 – 除高权限以外的所有人员
<a name="ExamplePolicies_AEB.dev"></a>

以下策略拒绝授予创建应用程序和环境的权限，但允许执行所有其他的 Elastic Beanstalk 操作。

请注意，此策略是一个示例。它为 AWS 产品提供了宽泛的权限，Elastic Beanstalk 可使用这些权限管理应用程序和环境。例如，`ec2:*` 允许 IAM 用户对 AWS 账户中的任何 Amazon EC2 资源执行任何操作。这些权限并不限于与 Elastic Beanstalk 配合使用的资源。作为最佳实践，您仅应向个人授予他们履行职责所需的权限。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Action" : [
        "elasticbeanstalk:CreateApplication",
        "elasticbeanstalk:CreateEnvironment",
        "elasticbeanstalk:DeleteApplication",
        "elasticbeanstalk:RebuildEnvironment",
        "elasticbeanstalk:SwapEnvironmentCNAMEs",
        "elasticbeanstalk:TerminateEnvironment"],
      "Effect" : "Deny",
      "Resource" : "*"
    },
    {
      "Action" : [
        "elasticbeanstalk:*",
        "ec2:*",
        "elasticloadbalancing:*",
        "autoscaling:*",
        "cloudwatch:*",
        "s3:*",
        "sns:*",
        "rds:*",
        "cloudformation:*"],
      "Effect" : "Allow",
      "Resource" : "*"
    }
  ]
}
```

------



## 示例 3：测试人员 – 仅限查看
<a name="ExamplePolicies_AEB.tester"></a>

以下策略允许给所有应用程序、应用程序版本、事件和环境提供只读访问权限。它不允许执行任何操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "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*",
        "rds:Describe*",
        "cloudformation:Describe*",
        "cloudformation:Get*",
        "cloudformation:List*",
        "cloudformation:Validate*",
        "cloudformation:Estimate*"
      ],
      "Resource" : "*"
    }
  ]
}
```

------