Amazon Redshift
集群管理指南 (API 版本 2012-12-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

对 Amazon Redshift 使用服务相关角色

Amazon Redshift 使用 AWS Identity and Access Management (IAM) 服务相关角色。服务相关角色是一种与 IAM 直接关联的独特类型的 Amazon Redshift 角色。服务相关角色由 Amazon Redshift 预定义,并包含该服务代表 Amazon Redshift cluster 调用 AWS 服务所需的一切权限。

服务相关角色可让您更轻松地设置 Amazon Redshift,因为您不必手动添加必要的权限。该角色与 Amazon Redshift 使用案例相关联并且具有预定义的权限。只有 Amazon Redshift 可以代入该角色,并且只有服务相关角色可以使用预定义的权限策略。Amazon Redshift 会在您首次创建集群时在您的账户中创建服务相关角色。只有删除您账户中的所有 Amazon Redshift 集群之后,您才可以删除服务相关角色。这将保护您的 Amazon Redshift 资源,因为您不会无意中删除访问资源所需的权限。

Amazon Redshift 支持在服务可用的所有区域中使用服务相关角色。有关更多信息,请参阅AWS Regions and Endpoints

有关支持服务相关角色的其他服务的信息,请参阅与 IAM 配合使用的 AWS 服务并查找 Service-Linked Role 列为 Yes 的服务。选择 Yes 与查看该服务的服务相关角色文档的链接。

Amazon Redshift 的服务相关角色权限

Amazon Redshift 使用名为 AWSServiceRoleForRedshift – Allows Amazon Redshift to call AWS services on your behalf 的服务相关角色。

AWSServiceRoleForRedshift 服务相关角色仅信任 redshift.amazonaws.com 来代入该角色。

AWSServiceRoleForRedshift 服务相关角色权限策略允许 Amazon Redshift 对所有相关资源完成以下操作:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeAddress

  • ec2:AssociateAddress

  • ec2:DisassociateAddress

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:ModifyNetworkInterfaceAttribute

允许 IAM 实体创建 AWSServiceRoleForRedshift 服务相关角色

向该 IAM 实体的权限中添加以下策略声明:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

在 中国(北京) 区域中,将以下策略语句添加到该 IAM 实体的权限中:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws-cn:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

允许 IAM 实体删除 AWSServiceRoleForRedshift 服务相关角色

向该 IAM 实体的权限中添加以下策略声明:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

在 中国(北京) 区域中,将以下策略语句添加到该 IAM 实体的权限中:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws-cn:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

或者,您可以使用 AWS 托管策略提供对 Amazon Redshift 的完全访问权限

为 创建服务相关角色Amazon Redshift

您无需手动创建 AWSServiceRoleForRedshift 服务相关角色。Amazon Redshift 将为您创建服务相关角色。如果已从您的账户中删除 AWSServiceRoleForRedshift 服务相关角色,Amazon Redshift 将在您启动新 Amazon Redshift 集群时创建该角色。

重要

如果您在 September 18, 2017 开始支持服务相关角色之前使用 Amazon Redshift 服务,那么 Amazon Redshift 会在您的账户中创建 AWSServiceRoleForRedshift 角色。要了解更多信息,请参阅我的 IAM 账户中出现新角色在 中国(北京) 区域中,如果您在 2017 年 11 月 17 日之前使用 Amazon Redshift 服务,则 Amazon Redshift 已在您的账户中创建 AWSServiceRoleForRedshift 角色。

编辑 Amazon Redshift 的服务相关角色

Amazon Redshift 不允许您编辑 AWSServiceRoleForRedshift 服务相关角色。在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。但是,您可以使用 IAM 控制台、AWS 命令行界面 (AWS CLI) 或 IAM API 编辑角色的描述。有关更多信息,请参阅 IAM 用户指南 中的修改角色

删除 Amazon Redshift 的服务相关角色

如果您不再需要使用某个需要服务相关角色的功能或服务,我们建议您删除该角色。这样您就没有未被主动监控或维护的未使用实体。

在删除账户的服务相关角色之前,您需要关闭并删除该账户中的所有集群。有关更多信息,请参阅 关闭和删除集群

您可以使用 IAM 控制台、AWS CLI 或 IAM API 删除服务相关角色。有关更多信息,请参阅 中的删除服务相关角色。