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

为 Amazon Redshift 使用服务相关角色

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

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

有关支持服务相关角色的其他服务的信息,请参阅与 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 删除服务相关角色。有关更多信息,请参阅 IAM 用户指南 中的删除服务相关角色