基于托管式策略的示例策略 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

基于托管式策略的示例策略

本节演示了如何控制用户对 Amazon Elastic Beanstalk 的访问,并包含了为常见场景提供所需访问权限的示例策略。这些策略派生自 Elastic Beanstalk 托管式策略。有关将托管式策略附加到用户和组的信息,请参见管理 Elastic Beanstalk 用户策略

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

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

示例 1:管理员组 – 所有 Elastic Beanstalk 和相关服务 API

以下策略向用户授予使用 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

  • Amazon CloudFormation

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

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

示例 2:开发人员组 – 除高权限以外的所有人员

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

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

{ "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:测试人员 – 仅限查看

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

{ "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" : "*" } ] }