本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基于托管式策略的示例策略
本节演示了如何控制用户对 AWS 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
-
AWS CloudFormation
请注意,此策略是一个示例。它为 AWS 服务提供了宽泛的权限,Elastic Beanstalk 可使用这些权限管理应用程序和环境。例如,ec2:*
允许 AWS Identity and Access Management(IAM)用户对 AWS 账户中的任何 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 操作。
请注意,此策略是一个示例。它为 AWS 产品提供了宽泛的权限,Elastic Beanstalk 可使用这些权限管理应用程序和环境。例如,ec2:*
允许 IAM 用户对 AWS 账户中的任何 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" : "*"
}
]
}