本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 IAM 角色與叢集建立關聯
建立 IAM 角色來授權 Amazon Redshift 代表您存取其他 AWS 服務後,您必須將該角色與 Amazon Redshift 叢集相關聯。您必須執行這項作業,才能使用該角色來載入或卸載資料。
將 IAM 角色與叢集建立關聯所需的許可
若要將 IAM 角色與叢集相關聯,使用者必須擁有該 IAM 角色的 iam:PassRole
許可。管理員可以運用此許可,限制使用者可將哪些 IAM 角色與 Amazon Redshift 叢集相關聯。我們建議的最佳實務是,將許可政策連接到 IAM 角色,然後根據需要將其指派給使用者和群組。如需詳細資訊,請參閱 Amazon Redshift 中的身分和存取管理。
以下範例顯示可連接到使用者的 IAM 政策,以允許使用者採取下列動作:
-
取得該使用者帳戶所擁有之所有 Amazon Redshift 叢集的詳細資訊。
-
將任何三個 IAM 角色與兩個 Amazon Redshift 叢集中的任一個相關聯。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:DescribeClusters", "Resource": "*" }, { "Effect": "Allow", "Action": [ "redshift:ModifyClusterIamRoles", "redshift:CreateCluster" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster", "arn:aws:redshift:us-east-1:123456789012:cluster:my-second-redshift-cluster" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::123456789012:role/MyRedshiftRole", "arn:aws:iam::123456789012:role/SecondRedshiftRole", "arn:aws:iam::123456789012:role/ThirdRedshiftRole" ] } ] }
使用者取得適當的許可後,該使用者可以將 IAM 角色與 Amazon Redshift 叢集相關聯。然後,IAM 角色就能使用 COPY 或 UNLOAD 命令,或是其他 Amazon Redshift 命令。
如需 IAM 政策的相關資訊,請參閱《IAM 使用者指南》中的 IAM 政策概觀。
管理 IAM 角色與叢集的關聯
您可以在建立叢集時將 IAM 角色與 Amazon Redshift 叢集相關聯。您也可以修改現有的叢集,並新增或移除一或多個 IAM 角色關聯。
請注意以下事項:
-
您可建立關聯的 IAM 角色數量上限需符合配額。
-
IAM 角色可以與多個 Amazon Redshift 叢集相關聯。
-
只有在 IAM 角色和叢集都屬於同一個 AWS 帳戶時,IAM 角色才能與 Amazon Redshift 叢集建立關聯。
您可在主控台中使用下列程序管理叢集的 IAM 角色關聯。
管理 IAM 角色關聯
登入 AWS Management Console ,並在 https://console.aws.amazon.com/redshiftv2/
:// 開啟 Amazon Redshift 主控台。 -
在導覽功能表上,選擇叢集,然後選擇您要更新的叢集。
-
針對 Actions (動作),選擇 Manage IAM roles (管理 IAM 角色) 以顯示與叢集相關聯的目前 IAM 角色清單。
-
在 Manage IAM roles (管理 IAM 角色) 頁面上,選擇要新增的可用 IAM 角色,然後選擇 Add IAM role (新增 IAM 角色)。
-
選擇 Done (完成) 以儲存變更。
您可以使用下列方法 AWS CLI ,管理叢集與 的 IAM 角色關聯。
若要在建立叢集時將 IAM 角色與叢集相關聯,請用 --iam-role-arns
命令的 create-cluster
參數指定 IAM 角色的 Amazon Resource Name (ARN)。您在呼叫 create-cluster
命令時可新增的 IAM 角色數量上限需符合配額。
IAM 角色與 Amazon Redshift 叢集的相關聯和取消關聯是非同步的程序。您可呼叫 describe-clusters
命令,以取得所有 IAM 角色叢集關聯的狀態。
以下範例將兩個 IAM 角色與名為 my-redshift-cluster
的新建立叢集相關聯。
aws redshift create-cluster \ --cluster-identifier "my-redshift-cluster" \ --node-type "ra3.4xlarge" \ --number-of-nodes 16 \ --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \ "arn:aws:iam::123456789012:role/SecondRedshiftRole"
若要將 IAM 角色與現有的 Amazon Redshift 叢集建立關聯,請在 modify-cluster-iam-roles
命令的 --add-iam-roles
參數中,指定 IAM 角色的 Amazon Resource Name (ARN)。您在呼叫 modify-cluster-iam-roles
命令時可新增的 IAM 角色數量上限需符合配額。
以下範例將一個 IAM 角色與名為 my-redshift-cluster
的現有叢集相關聯。
aws redshift modify-cluster-iam-roles \ --cluster-identifier "my-redshift-cluster" \ --add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
若要將 IAM 角色與叢集取消關聯,請用 modify-cluster-iam-roles
命令的 --remove-iam-roles
參數指定 IAM 角色的 ARN。modify-cluster-iam-roles
您在呼叫 modify-cluster-iam-roles
命令時可移除的 IAM 角色數量上限需符合配額。
下列範例會從名為 的叢集中移除123456789012
AWS 帳戶 IAM 角色的關聯my-redshift-cluster
。
aws redshift modify-cluster-iam-roles \ --cluster-identifier "my-redshift-cluster" \ --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
使用 AWS CLI列出叢集的 IAM 角色關聯
若要列出與 Amazon Redshift 叢集相關聯的所有 IAM 角色,以及 IAM 角色關聯的狀態,請呼叫 describe-clusters
命令。IamRoles
清單會傳回與叢集關聯之每個 IAM 角色的 ARN,如下列輸出範例所示。
已經與叢集相關聯的角色狀態會顯示為 in-sync
。正在與叢集相關聯的角色狀態會顯示為 adding
。正在與叢集取消關聯的角色狀態會顯示為 removing
。
{ "Clusters": [ { "ClusterIdentifier": "my-redshift-cluster", "NodeType": "ra3.4xlarge", "NumberOfNodes": 16, "IamRoles": [ { "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole", "IamRoleApplyStatus": "in-sync" } ], ... }, { "ClusterIdentifier": "my-second-redshift-cluster", "NodeType": "ra3.4xlarge", "NumberOfNodes": 10, "IamRoles": [ { "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole", "IamRoleApplyStatus": "in-sync" }, { "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole", "IamRoleApplyStatus": "in-sync" } ], ... } ] }
如需使用 的詳細資訊 AWS CLI,請參閱 AWS CLI 使用者指南。