本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Redshift 的服務連結角色
Amazon Redshift 使用 AWS Identity and Access Management (IAM) 服務連結角色。服務連結角色是一種獨特的IAM角色類型,可直接連結至 Amazon Redshift。服務連結角色由 Amazon Redshift 預先定義,並包含服務呼叫所需的所有許可 AWS 代表您的 Amazon Redshift 叢集提供的服務。
服務連結角色可讓設定 Amazon Redshift 變得更為簡單,因為您不必手動新增必要的許可。角色已連結到 Amazon Redshift 使用案例並且具備預先定義的許可。只有 Amazon Redshift 可以擔任此角色,且只有服務連結角色可以使用預先定義的許可政策。當您第一次建立叢集或由 RedShift 管理的端點時,Amazon Red VPC shift 會在您的帳戶中建立服務連結角色。只有在刪除帳戶中的所有 Amazon Redshift 叢集或 RedShift 管理VPC的端點之後,您才能刪除服務連結角色。因為您不會不小心移除存取資源所需的許可,這可保護您的 Amazon Redshift 資源。
Amazon Redshift 在所有提供服務的區域中支援使用服務連結的角色。如需詳細資訊,請參閱 AWS 區域和端點。
如需支援服務連結角色之其他服務的相關資訊,請參閱 AWS 與服務連結角色一起使用IAM並尋找在「服務連結角色」欄中具有是的服務。選擇具有連結的是,以檢視該服務的服務連結角色文件。
Amazon Redshift 的服務連結角色許可
Amazon Redshift 使用名為的服務鏈接角色 AWSServiceRoleForRedshift-允許 Amazon Redshift 調用 AWS 代表您提供的服務。此服務連結角色連接至下列受管政策:AmazonRedshiftServiceLinkedRolePolicy
。如需此政策的更新,請參閱 AWS適用於 Amazon Redshift 的受管 (預先定義) 政策。
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 服務配額。
稽核記錄的動作
列出 logs
字首的動作與稽核記錄和相關功能有關。具體而言是日誌群組和日誌串流的建立與管理。
-
logs:CreateLogGroup
-
logs:PutRetentionPolicy
-
logs:CreateLogStream
-
logs:PutLogEvents
-
logs:DescribeLogStreams
-
logs:GetLogEvents
以下內容向 Amazon Redshift JSON 顯示稽核記錄的動作和資源範圍。
[ { "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": "*" } ]
允許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 叢集時建立該角色。
重要
如果您在 2017 年 9 月 18 日之前使用 Amazon Redshift 服務,那麼該服務開始支援服務連結角色時,Amazon Redshift 就會在您的帳戶中建立該 AWSServiceRoleForRedshift 角色。若要深入瞭解,請參閱我的IAM帳戶中出現新角色。
編輯 Amazon Redshift 的服務連結角色
Amazon Redshift 不允許您編輯 AWSServiceRoleForRedshift 服務連結的角色。因為可能有各種實體會參考服務連結角色,所以您無法在建立角色之後變更其名稱。但是,您可以使用IAM控制台編輯角色的描述, AWS Command Line Interface (AWS CLI) 或IAMAPI。如需詳細資訊,請參閱《使用指南》中的IAM〈修改角色〉。
刪除 Amazon Redshift 的服務連結角色
若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。
您必須先關閉和刪除帳戶中的任何叢集,才能刪除帳戶的服務連結角色。如需詳細資訊,請參閱關閉和刪除叢集。
您可以使用IAM控制台 AWS CLI,或刪IAMAPI除服務連結角色。如需詳細資訊,請參閱IAM使用指南中的刪除服務連結角色。