使用 Amazon Redshift 的服務連結角色 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Redshift 的服務連結角色

Amazon Redshift 使用 AWS Identity and Access Management (IAM) 服務連結角色。服務連結角色是直接連結至 Amazon Redshift 的一種特殊 IAM 角色類型。服務連結角色是由 Amazon Redshift 預先定義,並包含服務代表 Amazon Redshift 叢集呼叫 AWS 服務所需的所有許可。

服務連結角色可讓設定 Amazon Redshift 變得更為簡單,因為您不必手動新增必要的許可。角色已連結到 Amazon Redshift 使用案例並且具備預先定義的許可。只有 Amazon Redshift 可以擔任此角色,且只有服務連結角色可以使用預先定義的許可政策。當您第一次建立叢集或 Redshift 受管 VPC 端點時,Amazon Redshift 會在您的帳戶中建立服務連結角色。只有在您刪除帳戶中的所有 Amazon Redshift 叢集或 Redshift 受管 VPC 端點之後,才能刪除服務連結角色。因為您不會不小心移除存取資源所需的許可,這可保護您的 Amazon Redshift 資源。

Amazon Redshift 在所有提供服務的區域中支援使用服務連結的角色。如需詳細資訊,請參閱 AWS 區域與端點

如需關於支援服務連結角色的其他服務資訊,請參閱《可搭配 IAM 運作的AWS 服務》,並尋找在 Service-Linked Role (服務連結角色) 欄中顯示為 Yes (是) 的服務。選擇具有連結的,以檢視該服務的服務連結角色文件。

Amazon Redshift 的服務連結角色許可

Amazon Redshift 使用名為 AWSServiceRoleForRedshift 的服務連結角色 – 允許 Amazon Redshift 代您呼叫 AWS 服務。此服務連結角色連接至下列受管政策:AmazonRedshiftServiceLinkedRolePolicy。如需此政策的更新,請參閱 Amazon Redshift 的AWS受管 (預先定義) 政策

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

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndpoints

  • ec2:DescribeVpcEndpoints

  • ec2:ModifyVpcEndpoint

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSecurityGroups

  • ec2:DescribeInternetGateways

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeAvailabilityZones

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:AssignIpv6Addresses

  • ec2:UnassignIpv6Addresses

網路資源的許可

下列許可允許在 Amazon EC2 上執行動作,以建立和管理安全群組規則。這些安全群組和規則特別與 Amazon Redshift aws:RequestTag/Redshift 資源標籤相關聯。這會將許可的適用範圍限制在特定的 Amazon Redshift 資源。

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

服務配額的許可

下列許可允許發起人取得服務配額。

servicequotas:GetServiceQuota

下列 JSON 片段顯示服務配額的動作和資源範圍。

{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }

配額代碼如下:

  • L-0263D0A3 – EC2-VPC 彈性 IPs 的配額代碼。

  • L-29B6F2EB – 每個 VPC 介面 VPC 端點的配額代碼。

如需更多相關資訊,請參閱 AWS Service Quotas

稽核記錄的動作

列出 logs 字首的動作與稽核記錄和相關功能有關。具體而言是日誌群組和日誌串流的建立與管理。

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

下列 JSON 會向 Amazon Redshift 顯示動作和資源範圍,以進行稽核記錄。

[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]

如需 中服務連結角色及其用途的詳細資訊 AWS,請參閱使用服務連結角色。如需 Amazon Redshift 的特定動作和其他 IAM 資源的相關資訊,請參閱 Amazon Redshift 的動作、資源和條件索引鍵

使用 管理管理員登入資料的動作 AWS Secrets Manager

列出 secretsmanager 字首的動作與使用 Amazon Redshift 來管理管理員憑證有關。這些動作可讓 Amazon Redshift 使用 AWS Secrets Manager 來建立和管理管理員登入資料秘密。

下列 JSON 向 Amazon Redshift 顯示動作和資源範圍,以使用 管理管理員憑證 AWS Secrets Manager。

[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

將叢集和無伺服器命名空間註冊到 的動作 AWS Glue Data Catalog

glue首列出的動作與存取 中的目錄有關,該目錄 AWS Glue Data Catalog 來自註冊佈建的叢集或無伺服器命名空間。如需詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 Amazon Redshift 的 Apache Iceberg 相容性

下列 JSON 向 Amazon Redshift 顯示動作和資源範圍,用於存取 中的目錄 AWS Glue Data Catalog:

{ "Sid": "DiscoverRedshiftCatalogs", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetCatalogs" ], "Resource": [ "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:catalog/*" ], "Condition": { "Bool": { "glue:EnabledForRedshiftAutoDiscovery": "true" } } }

允許 IAM 實體建立 AWSServiceRoleForRedshift 服務連結角色

{ "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 實體刪除 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"}} }

或者,您可以使用 AWS 受管政策來提供 Amazon Redshift 的完整存取權

建立 Amazon Redshift 的服務連結角色

您不需要手動建立 AWSServiceRoleForRedshift 服務連結角色。Amazon Redshift 會為您建立服務連結角色。如果已從您的帳戶刪除 AWSServiceRoleForRedshift 服務連結角色,Amazon Redshift 會在您啟動新的 Amazon Redshift 叢集時建立角色。

重要

Amazon Redshift 自 2017 年 9 月 18 日開始支援服務連結角色,若您在這之前就有使用 Amazon Redshift 服務,則 Amazon Redshift 會在您的帳戶中建立 AWSServiceRoleForRedshift 角色。若要進一步了解,請參閱顯示在我的 IAM 帳戶中的新角色

編輯 Amazon Redshift 的服務連結角色

Amazon Redshift 不允許您編輯 AWSServiceRoleForRedshift 服務連結角色。因為可能有各種實體會參考服務連結角色,所以您無法在建立角色之後變更其名稱。不過,您可以使用 IAM 主控台、 AWS Command Line Interface (AWS CLI) 或 IAM API 編輯角色的描述。如需詳細資訊,請參閱《IAM 使用者指南》中的修改角色

刪除 Amazon Redshift 的服務連結角色

若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。

您必須先關閉和刪除帳戶中的任何叢集,才能刪除帳戶的服務連結角色。如需詳細資訊,請參閱關閉和刪除叢集

您可以使用 IAM 主控台 AWS CLI、 或 IAM API 來刪除服務連結角色。如需詳細資訊,請參閱《IAM 使用者指南》中的刪除服務連結角色