限制對 IAM 角色的存取 - Amazon Redshift

自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章

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

限制對 IAM 角色的存取

根據預設,Amazon Redshift 叢集上可用的 IAM 角色適用於該叢集上所有的使用者。但您可以選擇將 IAM 角色限制為只有特定叢集上的特定 Amazon Redshift 資料庫使用者或特定區域可存取。

若只要允許特定資料庫使用者使用 IAM 角色,請遵循以下步驟。

識別可存取 IAM 角色的特定資料庫使用者
  1. 識別 Amazon Redshift 叢集中資料庫使用者的 Amazon Resource Name (ARN)。資料庫使用者的 ARN 格式如下:arn:aws:redshift:region:account-id:dbuser:cluster-name/user-name

    對於 Amazon Redshift Serverless,請使用以下 ARN 格式。arn:aws:redshift:region:account-id:dbuser:serverless-account-id-workgroup-id/user-name

  2. 開啟 IAM 主控台

  3. 在導覽窗格中,選擇 Roles (角色)。

  4. 選擇您想要限制只有特定 Amazon Redshift 資料庫使用者可存取的 IAM 角色。

  5. 選擇 Trust Relationships (信任關係) 索引標籤,然後選擇 Edit Trust Relationship (編輯信任關係)。允許 Amazon Redshift AWS 代表您存取其他服務的新 IAM 角色具有信任關係,如下所示:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  6. 新增條件至信任關係的 sts:AssumeRole 動作區段,將 sts:ExternalId 欄位限制在您所指定的值。包含您想要授予角色存取之各資料庫使用者的 ARN。外部 ID 可以是任何唯一的字串。

    例如,以下的信任關係指定只有 user1 區域中 user2 叢集上的 my-clusterus-west-2 資料庫使用者有使用此 IAM 角色的許可。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user1", "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user2" ] } } }] }
  7. 選擇 Update Trust Policy (更新信任政策)。