步驟 3:建立具有呼叫權限的IAM角色 GetClusterCredentials - Amazon Redshift

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

步驟 3:建立具有呼叫權限的IAM角色 GetClusterCredentials

您的SQL客戶需要授權才能代表您調用GetClusterCredentials操作。若要提供授權,您應建立使用者或角色,並附加授予必要許可的政策。

建立具有呼叫權限的IAM角色 GetClusterCredentials
  1. 使用IAM服務建立使用者或角色。也可使用現有的使用者或角色,例如,如果您建立了身分識別提供者存取的IAM角色,您可以將必要的IAM原則附加至該角色。

  2. 連接具有呼叫 redshift:GetClusterCredentials 操作許可的許可政策。根據指定的選用參數而定,您也能在政策中允許或限制其他動作和資源:

    • 若要允許用SQL戶端擷取叢集 ID、 AWS 區域和連接埠,請包含使用 Redshift 叢集資源呼叫redshift:DescribeClusters作業的權限。

    • 如果使用 AutoCreate 選項,請在 dbuser 資源中包含呼叫 redshift:CreateClusterUser 的許可。以下 Amazon 資源名稱(ARN)指定了 Amazon Redshift dbuser。Replace (取代) region, account-idcluster-name 包含您的 AWS 區域、帳戶和叢集的值。用於 德布士名字」下方,指定登入叢集資料庫時使用的使用者名稱。

      arn:aws:redshift:region:account-id:dbuser:cluster-name/dbuser-name
    • (選擇性) 新增一ARN個以下列格式指定 Amazon Redshift dbname 資源的資源。Replace (取代) region, account-idcluster-name 包含您的 AWS 區域、帳戶和叢集的值。針對 database-name,指定使用者將登入的資料庫名稱。

      arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
    • 如果您使用 DbGroups 選項,請包含對 Amazon Redshift dbgroup 資源呼叫 redshift:JoinGroup 操作的許可,格式如下。Replace (取代) region, account-idcluster-name 包含您的 AWS 區域、帳戶和叢集的值。針對 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 語法