本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 3:建立具有呼叫權限的IAM角色 GetClusterCredentials
您的SQL客戶需要授權才能代表您調用GetClusterCredentials
操作。若要提供授權,您應建立使用者或角色,並附加授予必要許可的政策。
建立具有呼叫權限的IAM角色 GetClusterCredentials
-
使用IAM服務建立使用者或角色。也可使用現有的使用者或角色,例如,如果您建立了身分識別提供者存取的IAM角色,您可以將必要的IAM原則附加至該角色。
-
連接具有呼叫
redshift:GetClusterCredentials
操作許可的許可政策。根據指定的選用參數而定,您也能在政策中允許或限制其他動作和資源:-
若要允許用SQL戶端擷取叢集 ID、 AWS 區域和連接埠,請包含使用 Redshift 叢集資源呼叫
redshift:DescribeClusters
作業的權限。 -
如果使用
AutoCreate
選項,請在dbuser
資源中包含呼叫redshift:CreateClusterUser
的許可。以下 Amazon 資源名稱(ARN)指定了 Amazon Redshiftdbuser
。Replace (取代)
,region
和account-id
包含您的 AWS 區域、帳戶和叢集的值。用於cluster-name
」下方,指定登入叢集資料庫時使用的使用者名稱。德布士名字
arn:aws:redshift:
region
:account-id
:dbuser:cluster-name
/dbuser-name
-
(選擇性) 新增一ARN個以下列格式指定 Amazon Redshift
dbname
資源的資源。Replace (取代)
,region
和account-id
包含您的 AWS 區域、帳戶和叢集的值。針對cluster-name
,指定使用者將登入的資料庫名稱。database-name
arn:aws:redshift:
region
:account-id
:dbname:cluster-name
/database-name
-
如果您使用
DbGroups
選項,請包含對 Amazon Redshiftdbgroup
資源呼叫redshift:JoinGroup
操作的許可,格式如下。Replace (取代)
,region
和account-id
包含您的 AWS 區域、帳戶和叢集的值。針對cluster-name
,指定使用者登入時要加入的使用者群組名稱。dbgroup-name
arn:aws:redshift:
region
:account-id
:dbgroup:cluster-name
/dbgroup-name
-
如需詳細資訊和範例,請參閱 的資源策略 GetClusterCredentials。
下列範例顯示允許IAM角色呼叫作GetClusterCredentials
業的原則。指定 Amazon Redshift dbuser
資源會將角色存取授予名為 examplecluster
的叢集上的資料庫使用者名稱 temp_creds_user
。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user" } }
您可以使用萬用字元 (*) 來取代全部或一部分的叢集名稱、使用者名稱和資料庫群組名稱。以下範例允許指定帳戶中任何叢集任何開頭為 temp_
的使用者名稱。
重要
下列範例中的陳述式指定萬用字元 (*) 做為資源的部分值,因此政策允許任何開頭為指定字元的資源。在您的IAM政策中使用萬用字元可能會過於寬鬆。根據最佳實務,建議使用適用於您商業應用程式最嚴苛的政策。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*" } }
下列範例顯示允許IAM角色呼叫GetClusterCredentials
作業的策略,其中包含自動建立新使用者並指定使用者登入時加入的群組的選項。"Resource":
"*"
子句授予角色任何資源的存取權,包括叢集、資料庫使用者或使用者群組。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": "*" } }
如需詳細資訊,請參閱 Amazon Redshift ARN 語法。