AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

工作职能的 AWS 托管策略

AWS 工作职能托管策略,旨在贴合 IT 行业的常见工作职能。您可以使用这些策略,轻松给特定工作职能的某人,授予执行预期任务所需的权限。这些策略将许多服务的权限整合到单个策略,比起分散在多个策略之间的权限,处理起来更加简单。

您可以将这些工作职能的策略附加到任何组、用户或角色。

使用角色来合并服务

某些策略使用 IAM 服务角色帮助您利用在其他 AWS 服务中发现的功能。这些策略授予对 iam:passrole 的访问权限,允许使用策略的用户将角色传递给 AWS 服务。此角色向 AWS 服务委派代表您执行操作的 IAM 权限。

您必须根据需求创建角色。例如,网络管理员策略允许使用该策略的用户将角色“flow-logs-vpc”传递给 Amazon CloudWatch 服务。CloudWatch 使用该角色为用户创建的 VPC 记录并捕获 IP 流量。

要遵循安全最佳实践,工作职能的策略包括限制可传递的有效角色名称的筛选器。这有助于避免授予不必要的权限。如果您的用户确实需要可选的服务角色,您必须按照策略中指定的命名约定创建一个角色。随后才能给角色授予权限。完成该操作后,用户方可配置服务来使用该角色,为服务授予角色提供的任何权限。

保持最新状态

这些策略均由 AWS 维护并随时保持更新,以便在 AWS 添加新服务和新功能时,包括对它们的支持。这些策略不能由客户修改。您可以复制策略并对副本进行修改,但在 AWS 推出新的服务和 API 操作时,不会自动更新该副本。

工作职能

在以下部分中,每个策略的名称都是指向 AWS 管理控制台中策略详细信息页面的链接。您可以在该页面中查看策略文档并了解它所授予的权限。

管理员

AWS 托管策略名称:AdministratorAccess

使用案例:此用户具有完全访问权限,而且可以为 AWS; 中的每个服务和资源委派权限。

策略描述:此策略为账户中的所有 AWS 服务和所有资源授予所有操作权限。

账单

AWS 托管策略名称:Billing

使用案例:此用户需要查看账单信息、设置付款和授权付款。用户可以监控整个 AWS 服务累积的各项成本。

策略描述:此策略授予管理账单、成本、付款方式、预算和报表的权限。

注意

在 IAM 用户能够通过此策略访问 AWS Billing and Cost Management 控制台之前,您必须先为账户启用 Billing and Cost Management 控制台访问权限。为此,请按照“向账单控制台委派访问权限”教程:第 1 步中的说明进行操作。

数据库管理员

AWS 托管策略名称:DatabaseAdministrator

使用案例:此用户设置、配置和维护 AWS 云中的数据库。

策略说明:此策略授予创建、配置和维护数据库的权限。它包括对所有 AWS 数据库服务的访问权限,例如 Amazon DynamoDB、Amazon ElastiCache、Amazon Relational Database Service (RDS)、Amazon Redshift 及其他支持服务。

该策略支持将角色传递给 AWS 服务的能力。该策略仅为下表中列出的角色授予 iam:GetRoleiam:PassRole 的权限。有关更多信息,请参阅本主题后面的 创建角色并附加策略 (控制台)

适合数据库管理员工作职能的可选 IAM 服务角色

使用案例 角色名称 (* 为通配符) 可选择的服务角色类型 选择此 AWS 托管策略
允许用户监控 RDS 数据库 rds-monitoring-role 适合高级监控的 Amazon RDS 角色 AmazonRDSEnhancedMonitoringRole
允许 AWS Lambda 监控您的数据库和访问外部数据库 rdbms-lambda-access Amazon EC2 AWSLambdaFullAccess
允许 Lambda 将文件上传到 Amazon S3 和包含 DynamoDB 的 Amazon Redshift 集群 lambda_exec_role AWS Lambda 按照 AWS 大数据博客中的定义,新建一个托管策略
允许 Lambda 职能触发您的 DynamoDB 表 lambda-dynamodb-* AWS Lambda AWSLambdaDynamoDBExecutionRole
允许 Lambda 职能在 VPC 中访问 Amazon RDS lambda-vpc-execution-role 使用AWS Lambda Developer Guide中定义的信任策略创建一个角色 AWSLambdaVPCAccessExecutionRole
允许 AWS Data Pipeline 访问您的 AWS 资源 DataPipelineDefaultRole 使用AWS Data Pipeline 开发人员指南中定义的信任策略创建一个角色 AWSDataPipelineRole
允许您在 Amazon EC2 实例上运行的应用程序访问您的 AWS 资源 DataPipelineDefaultResourceRole 使用AWS Data Pipeline 开发人员指南中定义的信任策略创建一个角色 AmazonEC2RoleforDataPipelineRole

数据科学家

AWS 托管策略名称:DataScientist

使用案例: 此用户运行 Hadoop 作业和查询。该用户还访问并分析有关数据分析和商业智能的信息。

策略描述:此策略授予在 Amazon EMR 集群上创建、管理和运行查询的权限,以及使用 Amazon QuickSight 等工具执行数据分析的权限。该策略包括访问 AWS Data Pipeline、Amazon EC2、Amazon Elasticsearch Service、Amazon Elastic File System、Amazon EMR、Amazon Kinesis、Amazon Kinesis Data Analytics、Amazon Machine Learning、Amazon RDS 和 Amazon Redshift 的权限。

此工作职能支持将角色传递给 AWS 服务的能力。该策略仅为下表中列出的角色授予 iam:GetRoleiam:PassRole 的权限。有关更多信息,请参阅本主题后面的 创建角色并附加策略 (控制台)

适合数据科学家工作职能的可选 IAM 服务角色

使用案例 角色名称 (* 为通配符) 可选择的服务角色类型 可选择的 AWS 托管策略
允许 Amazon EC2 实例访问适合集群的服务和资源 EMR-EC2_DefaultRole Amazon EMR for EC2 AmazonElasticMapReduceforEC2Role
允许 Amazon EMR 访问集群的 Amazon EC2 服务和资源 EMR_DefaultRole Amazon EMR AmazonElasticMapReduceRole
允许 Kinesis Kinesis Data Analytics 访问流式数据源 kinesis-* 使用AWS 大数据博客中定义的信任策略创建一个角色。 请参阅 AWS; 大数据博客,其中根据您的使用情况概述了四种可能的选项。
允许 AWS Data Pipeline 访问您的 AWS 资源 DataPipelineDefaultRole 使用AWS Data Pipeline 开发人员指南中定义的信任策略创建一个角色 AWSDataPipelineRole
允许您在 Amazon EC2 实例上运行的应用程序访问您的 AWS 资源 DataPipelineDefaultResourceRole 使用AWS Data Pipeline 开发人员指南中定义的信任策略创建一个角色 AmazonEC2RoleforDataPipelineRole

高级开发人员用户

AWS 托管策略名称:PowerUserAccess

使用案例:此用户执行应用程序开发任务,并可创建和配置特定的资源和服务,它们为能够识别 AWS 的应用程序开发提供支持。

策略描述:此策略为 AWS Identity and Access Management 和 AWS Organizations 以外的所有 AWS 服务和所有资源授予所有操作权限。该策略授予创建服务相关角色的 IAM 权限。这是某些服务访问其他服务(如 Amazon S3 存储桶)中的资源所必需的。该策略授予 组织 权限以查看有关用户所在组织的信息,包括主账户电子邮件和组织限制。

网络管理员

AWS托管策略名称:NetworkAdministrator

使用案例:此用户分配到的任务是设置和维护 AWS 网络资源。

策略描述:此策略授予在以下服务中创建和维护网络资源的权限:Auto Scaling、Amazon EC2、AWS Direct Connect、Route 53、Amazon CloudFront、Elastic Load Balancing、AWS Elastic Beanstalk、Amazon SNS、CloudWatch、CloudWatch Logs、Amazon S3、 IAM 和 Amazon Virtual Private Cloud。

此工作职能需要将角色传递给 AWS 服务的能力。该策略仅为下表中列出的角色授予 iam:GetRoleiam:PassRole 的权限。有关更多信息,请参阅本主题后面的 创建角色并附加策略 (控制台)

适合网络管理员工作职能的可选 IAM 服务角色

使用案例 角色名称 (* 为通配符) 可选择的服务角色类型 可选择的 AWS 托管策略
允许 Amazon VPC 代表用户在 CloudWatch Logs 中创建和管理日志,以监控进出您的 VPC 的 IP 流量 flow-logs-* 使用Amazon VPC 用户指南中定义的信任策略创建一个角色 此使用案例没有现成的 AWS 托管策略,但是,文档列出了所需权限。请参阅 Amazon VPC 用户指南

安全审计

AWS 托管策略名称:SecurityAudit

使用案例: 此用户监控账户是否符合安全要求。此用户可以访问日志和事件来调查潜在的安全漏洞或潜在的恶意活动。

策略描述:此策略可授予查看多项 AWS 服务的配置数据并检查其日志的权限。

支持用户

AWS 托管策略名称:SupportUser

使用案例:此用户与 AWS Support 联系,创建支持案例并查看现有案例的状态。

策略描述:此策略授予创建和更新 AWS Support 案例的权限。

系统管理员

AWS 托管策略名称:SystemAdministrator

使用案例: 此用户设置和维护用于开发操作的资源。

策略描述:此策略授予在各种 AWS 服务之间创建和维护资源的权限,这些服务包括 AWS CloudTrail、Amazon CloudWatch、AWS CodeCommit、AWS CodeDeploy、AWS Config、AWS Directory Service、Amazon EC2、AWS Identity and Access Management、AWS Key Management Service、AWS Lambda、Amazon RDS、Route 53、Amazon S3、Amazon SES、Amazon SQS、AWS Trusted Advisor 和 Amazon VPC。

此工作职能需要将角色传递给 AWS 服务的能力。该策略仅为下表中列出的角色授予 iam:GetRoleiam:PassRole 的权限。有关更多信息,请参阅本主题后面的 创建角色并附加策略 (控制台)

适合系统管理员工作职能的可选 IAM 服务角色

使用案例 角色名称 (* 为通配符) 可选择的服务角色类型 可选择的 AWS 托管策略
允许 Amazon ECS 集群中在 EC2 实例中运行的应用程序访问 Amazon ECS ecr-sysadmin-* 适合 EC2 Container Service 的 Amazon EC2 角色 AmazonEC2ContainerServiceforEC2Role
允许用户监控数据库 rds-monitoring-role 适合高级监控的 Amazon RDS 角色 AmazonRDSEnhancedMonitoringRole
允许在 EC2 实例中运行的应用程序访问 AWS 资源。 ec2-sysadmin-* Amazon EC2 角色的示例策略,授予对 S3 存储桶的访问权限,如Amazon EC2 用户指南(适用于 Linux 实例)中所示;可根据需要自定义
允许 Lambda 读取 DynamoDB 流和写入 CloudWatch 日志 lambda-sysadmin-* AWS Lambda AWSLambdaDynamoDBExecutionRole

“仅查看”用户

AWS 托管策略名称:ViewOnlyAccess

使用案例:此用户可以查看账户中所有服务的 AWS 资源和基本元数据的列表。用户不得读取超出资源配额和列表信息的资源内容和元数据。

策略描述:此策略授予 List*Describe*Get*View*Lookup* 访问每个 AWS 服务的资源的权限。

创建角色并附加策略 (控制台)

上文列出的一些策略授予了通过角色配置 AWS 服务的能力,以便这些服务能够代表您执行操作。工作职能策略或者指定您必须使用的确切角色名称,或者至少包括指定可用名称的开头部分的前缀。要创建这些角色之一,请执行以下程序中的步骤。

创建用于 AWS 服务的角色 (IAM 控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在 IAM 控制台的导航窗格中,选择 Roles,然后选择 Create role

  3. 选择 AWS Service 角色类型,然后选择要允许代入此角色的服务。

  4. 选择用于您的服务的使用案例。如果指定的服务只有一个使用案例,则系统会为您选择此使用案例。使用案例由服务定义以包含服务要求的信任策略。然后选择 Next: Permissions

  5. 选择一个或多个要附加到角色的权限策略。根据您选择的使用案例,服务可能执行以下任意操作:

    • 定义角色使用的权限

    • 允许您从一组有限的权限中进行选择

    • 允许您从任意权限中进行选择

    • 允许您此时不选择策略,稍后创建策略,然后将这些策略附加到角色

    选中用于分配您希望用户拥有的权限的策略旁的框,然后选择 Next: Review

    注意

    使用角色的任何实体都可以使用您指定的权限。默认情况下,角色没有权限。

  6. 对于 Role name,角色名称自定义的程度由服务定义。如果服务定义角色的名称,则此选项不可编辑。在其他情况下,服务可能定义角色的前缀并允许您键入可选的后缀。某些服务允许您指定角色的整个名称。

    如果可能,键入有助于识别此角色的作用的角色名称或角色名称后缀。角色名称在您的 AWS 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于多个单位可能引用该角色,角色创建完毕后无法编辑角色名称。

  7. (可选) 对于 Role description,键入新角色的描述。

  8. 检查角色,然后选择 Create role

示例 1:将用户配置为数据库管理员 (控制台)

此示例显示将 IAM 用户 Alice 配置为数据库管理员需要执行的步骤。您需要使用此部分中的表中第一行中的信息,并允许该用户启用 Amazon RDS 监控。您将 DatabaseAdministrator 策略附加给 Alice 的 IAM 用户,以便她可以管理 Amazon 数据库服务。该策略还允许 Alice 将名为 rds-monitoring-role 的角色传递给 Amazon RDS 服务,从而允许该服务代表她监控 RDS 数据库。

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 选择 Policies (策略),然后在搜索框中键入 database

  3. 选择 DatabaseAdministrator 策略对应的复选框,再选择 Policy actions,然后选择 Attach

  4. 在用户列表中选择 Alice,然后选择 Attach policy。Alice 现在可以管理 AWS 数据库了。但是,要允许 Alice 监控这些数据库,您必须配置服务角色。

  5. 在 IAM 控制台的导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  6. 选择 AWS Service (AWS 服务) 角色类型,然后选择 Amazon RDS

  7. 选择Amazon RDS Role for Enhanced Monitoring (用于增强监控的 RDS 角色) 使用案例。

  8. Amazon RDS 将为您的角色定义权限。选择下一步:审核以继续。

  9. 角色名称必须是 Alice 当前拥有的 DatabaseAdministrator 策略中指定的一个。其中一个是 rds-monitoring-role。键入它作为 Role name

  10. (可选) 对于 Role description,键入新角色的描述。

  11. 在检查详细信息后,选择 Create role

  12. 现在,Alice 即可在 Amazon RDS 控制台的 Monitoring (监控) 部分中启用 RDS Enhanced Monitoring (RDS 增强监控)。例如,她可以在创建数据库实例、创建只读副本或修改数据库实例时执行此操作。在将 Enable Enhanced Monitoring 设为 Yes 时,她必须在 Monitoring Role 框中键入自己创建的角色名称:rds-monitoring-role。

示例 2:将用户配置为网络管理员 (控制台)

此示例显示将 IAM 用户 Juan 配置为网络管理员需要执行的步骤。它使用该部分的表中的信息来允许 Juan 监控往来于 VPC 的 IP 流量。它还允许 Juan 将该信息记录在 CloudWatch Logs 日志中。您将 NetworkAdministrator 策略附加给 Juan 的 IAM 用户,以便他可以配置 AWS 网络资源。该策略还允许 Juan 在您创建流日志时,将名称以 flow-logs* 开头的角色传递给 Amazon EC2。此场景与示例 1 不同,这里没有预定义的服务角色类型,因此您必须执行几个不同的步骤。

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Policies (策略),然后在搜索框中键入 network

  3. 选中 NetworkAdministrator 策略旁的复选框,然后依次选择 Policy actionsAttach

  4. 在用户列表中选择 Juan 对应的复选框,然后选择 Attach policy。Juan 现在可以管理 AWS 网络资源了。但是,为了监控 VPC 中的 IP 流量,您必须配置服务角色。

  5. 由于您需要创建的服务角色没有预定义的托管策略,您必须先创建一个。在导航窗格中,选择策略,然后选择创建策略

  6. 选择 JSON 选项卡,然后复制以下 JSON 策略文档中的文本。将该文本粘贴到 JSON 文本框中。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "*" } ] }
  7. 完成后,选择查看策略策略验证程序将报告任何语法错误。

    注意

    您可以随时在可视化编辑器JSON 选项卡之间切换。不过,如果您进行更改或在 Visual editor (可视化编辑器) 选项卡中选择 Review policy (查看策略),IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅调整策略结构

  8. Review (查看) 页面上,键入 vpc-flow-logs-policy-for-service-role 作为策略名称。查看策略摘要以查看您的策略授予的权限,然后选择创建策略以保存您的工作。

    将在托管策略列表中显示新策略,并已准备好附加该策略。

  9. 在 IAM 控制台的导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  10. 选择 AWS Service (AWS 服务) 角色类型,然后选择 Amazon EC2

  11. 选择 Amazon EC2 使用案例。

  12. 附加权限策略页面上,选择您之前创建的策略:vpc-flow-logs-policy-for-service-role,然后选择下一步:审核

  13. 必须使用 Juan 当前拥有的 NetworkAdministrator 策略所允许的角色名称。允许以 flow-logs- 开头的任何名称。在此示例中,对于 Role name (角色名称),请键入 flow-logs-for-juan

  14. (可选) 对于 Role description,键入新角色的描述。

  15. 在检查详细信息后,选择 Create role

  16. 现在可以配置本场景需要的信任策略。在 Roles (角色) 页面上,选择 flow-logs-for-juan 角色(选择角色名称而不是复选框)。在新角色的详细信息页面上,选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)

  17. 将条目替换为 ec2.amazonaws.com,“Service”行改为读取,如下所示:

    "Service": "vpc-flow-logs.amazonaws.com"
  18. Juan 现在可以在 Amazon EC2 控制台中为 VPC 或子网创建流日志了。当创建流日志时,请指定 flow-logs-for-juan 角色。该角色拥有创建日志并向其写入数据的权限。