本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對 Amazon Redshift 使用基於身份的IAM政策 (政策)
本主題提供以身分識別為基礎的原則範例,其中帳戶管理員可以將權限原則附加至IAM身分識別 (也就是使用者、群組和角色)。
重要
建議您先檢閱簡介主題,其中說明基本概念及有何選項可供您管理對 Amazon Redshift 資源的存取。如需詳細資訊,請參閱管理 Amazon Redshift 資源存取許可的概觀。
以下顯示許可政策範例。此原則可讓使用者建立、刪除、修改和重新啟動所有叢集,然後拒絕刪除或修改叢集識別碼以 production
in AWS 區域 us-west-2
和 AWS 帳戶 123456789012
開頭的任何叢集的權限。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ] }
此政策具有兩個陳述式:
-
第一個陳述式會將某使用者的許可授予給另一位使用者,讓該使用者得以建立、刪除、修改叢集和將它們重新開機。該陳述式會指定萬用字元 (*) 做為
Resource
值,以便該政策適用於根 AWS 帳戶擁有的所有 Amazon Redshift 資源。 -
第二個陳述式會拒絕對叢集的刪除或修改許可。此陳述式會為包含萬用字元 (*ARN) 的
Resource
值指定叢集 Amazon 資源名稱 ()。因此,此陳述式適用於叢集識別碼開頭為根 AWS 帳戶所擁有的所有 Amazon Redshift 叢集。production
AWS Amazon Redshift 的受管政策
AWS 透過提供由建立和管理的獨立IAM原則來解決許多常見使用案例 AWS。受管政策授與常見使用案例中必要的許可,讓您免於查詢需要哪些許可。如需詳細資訊,請參閱IAM使用指南中的AWS 受管理策略。
您也可以建立自己的自訂IAM政策,以允許 Amazon Redshift API 操作和資源的許可。您可以將這些自訂原則附加到需要這些權限的IAM角色或群組。
以下各節說明 AWS 受管政策,您可以將這些政策附加到帳戶中的使用者,並且特定於 Amazon Redshift。
AmazonRedshiftReadOnlyAccess
授予 AWS 帳戶所有 Amazon Redshift 資源的唯讀存取權。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftReadOnlyAccess
AmazonRedshiftFullAccess
授予 AWS 帳戶所有 Amazon Redshift 資源的完整存取權。此外,這個政策還會授予所有 Amazon Redshift Serverless 資源的完整存取權。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftFullAccess
AmazonRedshiftQueryEditor
授予 Amazon Redshift 主控台上查詢編輯器的完整存取權。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftQueryEditor
AmazonRedshiftDataFullAccess
授予 AWS 帳戶對 Amazon Redshift 資料API操作和資源的完整存取權。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftDataFullAccess
AmazonRedshiftQueryEditorV2 FullAccess
授予 Amazon Redshift 查詢編輯器 v2 操作和資源的完整存取權。此政策也會授予其他必要服務的存取權。
您可以在IAM主控台上找到 AmazonRedshiftQueryEditorV2 FullAccess
AmazonRedshiftQueryEditorV2 NoSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,而不共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體無法標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。
您可以在IAM主控台上找到 AmazonRedshiftQueryEditorV2 NoSharing
AmazonRedshiftQueryEditorV2 ReadSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,並可有限度地共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體可以標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。獲得授予的主體可以讀取與其團隊共用的資源,但無法更新這些資源。
您可以在IAM主控台上找到 AmazonRedshiftQueryEditorV2 ReadSharing
AmazonRedshiftQueryEditorV2 ReadWriteSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,並可共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體可以標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。獲得授予的主體可以讀取和更新與其團隊共用的資源。
您可以在IAM主控台上找到 AmazonRedshiftQueryEditorV2 ReadWriteSharing
AmazonRedshiftServiceLinkedRolePolicy
您無法附加 AmazonRedshiftServiceLinkedRolePolicy 至您的IAM實體。此政策會附加至服務連結角色,可讓 Amazon Redshift 存取帳戶資源。如需詳細資訊,請參閱為 Amazon Redshift 使用服務連結角色。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftServiceLinkedRolePolicy
AmazonRedshiftAllCommandsFullAccess
授予使用從 Amazon Redshift 主控台建立的IAM角色,並將其設定為預設值,讓叢集能夠COPY從 Amazon S3、、UNLOADCREATEEXTERNALSCHEMACREATEEXTERNALFUNCTION、和CREATEMODEL命令執行。此政策也授予執行相關服務 (例如 Amazon S3、 CloudWatch 日誌、Amazon SageMaker 或) SELECT 陳述式的許可 AWS Glue。
您可以在IAM主控台和AWS 受管理的AmazonRedshiftAllCommandsFullAccess
您也可以建立自己的自訂IAM政策,以允許 Amazon Redshift API 操作和資源的許可。您可以將這些自訂原則附加到需要這些權限的IAM角色或群組。
Amazon Redshift 更新 AWS 受管政策
檢視有關 Amazon Redshift AWS 受管政策更新的詳細資訊,因為此服務開始追蹤這些變更。如需有關此頁面變更的自動警示,請訂閱 Amazon Redshift 文件歷史記錄頁面上的動RSS態消息。
變更 | 描述 | 日期 |
---|---|---|
|
2024年2月21 日 | |
|
2024年2月21 日 | |
|
2024年2月21 日 | |
|
2024年2月21 日 | |
AmazonRedshiftReadOnlyAccess – 更新現有政策 |
|
2024年2月7日 |
|
2023 年 10 月 31 日 | |
|
2023 年 8 月 16 日 | |
|
2023 年 8 月 16 日 | |
|
2023 年 8 月 16 日 | |
建立和管理密碼 AWS Secrets Manager 的動作權限會新增至受管理的策略。已新增的許可如下:
|
2023 年 8 月 14 日 | |
Amazon EC2 上建立和管理安全群組和路由規則的動作許可已從受管政策中移除。這些權限與建立子網路和有關。VPCs已移除的許可如下:
|
2023 年 5 月 8 日 | |
AmazonRedshiftDataFullAccess – 更新現有政策 |
|
2023 年 4 月 7 日 |
Amazon EC2 上用於建立和管理安全群組規則的動作許可會新增至受管政策。這些安全群組和規則特別與 Amazon Redshift |
2023 年 4 月 6 日 | |
|
2023 年 3 月 21 日 | |
|
2023 年 3 月 21 日 | |
|
2023 年 3 月 21 日 | |
|
2023 年 2 月 2 日 | |
|
2023 年 2 月 2 日 | |
|
2023 年 2 月 2 日 | |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 | |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 | |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 | |
Amazon Redshift 添加了命名空間 |
2022 年 9 月 7 日 | |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 | |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 | |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 | |
AmazonRedshiftFullAccess – 更新現有政策 |
Amazon Redshift 無伺服器的許可會新增至現有的 AmazonRedshiftFullAccess 受管政策。 |
2022 年 7 月 22 日 |
AmazonRedshiftDataFullAccess – 更新現有政策 |
Amazon Redshift 已將標籤 aws:ResourceTag/RedshiftDataFullAccess 許可的 redshift-serverless:GetCredentials 預設範圍條件從 StringEquals 更新為 StringLike ,以授予標記了標籤索引鍵 RedshiftDataFullAccess 和任何標籤值之資源的存取權。 |
2022 年 7 月 11 日 |
AmazonRedshiftDataFullAccess – 更新現有政策 |
Amazon Redshift 已新增新的許可,以允許使用 redshift-serverless:GetCredentials 獲得 Amazon Redshift Serverless 的臨時憑證。 |
2022 年 7 月 8 日 |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 | |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 | |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 | |
為了讓公眾存取新的 Amazon Redshift 無伺服器端點,Amazon Redshift 會將彈性 IP 地址配置並建立關聯到客戶帳VPC戶中端點的彈性網路界面。其會透過服務連結角色所提供的許可來執行此操作。為了實現這個使用案例,用來配置和釋放彈性 IP 地址的動作已新增至 Amazon Redshift Serverless 服務連結角色。 |
2022 年 5 月 26 日 | |
動作 |
2022 年 2 月 22 日 | |
動作 |
2022 年 2 月 22 日 | |
動作 |
2022 年 2 月 22 日 | |
動作 |
2022 年 2 月 22 日 | |
|
2022 年 2 月 22 日 | |
Amazon Redshift 為新動作添加了許可,以允許管理 Amazon Redshift 網絡和VPC資源。 |
2021 年 11 月 22 日 | |
Amazon Redshift 新增了一項新政策,允許使用從 Amazon Redshift 主控台建立的IAM角色,並將其設定為預設叢集,以便COPY從 Amazon S3、、、UNLOADCREATEEXTERNALSCHEMACREATEEXTERNALFUNCTIONCREATEMODEL、或CREATELIBRARY命令執行。 |
2021 年 11 月 18 日 | |
Amazon Redshift 為新動作新增了許可,以允許管理 Amazon Redshift CloudWatch 日誌群組和日誌串流,包括稽核日誌匯出。 |
2021 年 11 月 15 日 | |
AmazonRedshiftFullAccess – 更新現有政策 |
Amazon Redshift 添加了新的許可,以允許模型解釋,DynamoDB,Redshift 頻譜和 Amazon 聯合。RDS | 2021 年 10 月 7 日 |
Amazon Redshift 已新增一項新政策,以允許 Amazon Redshift 查詢編輯器 v2 的完整存取權。 |
2021 年 9 月 24 日 | |
Amazon Redshift 已新增一項新政策,以允許在不共用資源的情況下使用 Amazon Redshift 查詢編輯器 v2。 |
2021 年 9 月 24 日 | |
Amazon Redshift 已新增一項新政策,以允許在 Amazon Redshift 查詢編輯器 v2 內進行讀取共用。 |
2021 年 9 月 24 日 | |
Amazon Redshift 已新增一項新政策,以允許在 Amazon Redshift 查詢編輯器 v2 內進行讀取和更新共用。 |
2021 年 9 月 24 日 | |
AmazonRedshiftFullAccess – 更新現有政策 |
Amazon Redshift 已新增新的許可,以允許 |
2021 年 8 月 18 日 |
AmazonRedshiftDataFullAccess – 更新現有政策 |
Amazon Redshift 已新增新的許可,以允許 |
2021 年 8 月 12 日 |
AmazonRedshiftDataFullAccess – 更新現有政策 |
Amazon Redshift 已新增新的許可,以允許 |
2021 年 7 月 27 日 |
Amazon Redshift 已開始追蹤變更 |
Amazon Redshift 開始追蹤其 AWS 受管政策的變更。 |
2021 年 7 月 27 日 |
要使用 Redshift Spectrum 所需的許可
Amazon Redshift Spectrum 需要其他 AWS 服務的許可才能存取資源。有關紅移頻譜IAM政策中許可的詳細資訊,請參閱亞馬遜 Redshift 數據庫開發人員指南中的 Amazon Redshift Spectrum IAM 政策。
要使用 Amazon Redshift 主控台所需的許可
若要讓使用者使用 Amazon Redshift 主控台,該使用者必須擁有一組最低限度的許可,才能讓使用者描述其 AWS 帳戶的 Amazon Redshift 資源。這些許可還必須允許用戶描述其他相關信息,包括 Amazon EC2 安全 CloudWatch,AmazonSNS,Amazon 和網絡信息。
如果您建立的IAM策略比所需的最低權限限制更嚴格,則控制台不會按照具有該IAM策略的使用者預期運作。為確保這些使用者仍可使用 Amazon Redshift 主控台,也請將 AmazonRedshiftReadOnlyAccess
受管政策附加至使用者。若要了解如何執行這項操作,請參閱 AWS Amazon Redshift 的受管政策。
如需有關向使用者提供 Amazon Redshift 主控台上查詢編輯器存取權的資訊,請參閱要使用 Amazon Redshift 主控台查詢編輯器所需的許可。
您不需要為只對 AWS CLI 或 Amazon Redshift API 撥打電話的使用者允許最低主控台許可。
要使用 Amazon Redshift 主控台查詢編輯器所需的許可
若要讓使用者使用 Amazon Redshift 查詢編輯器,該使用者必須擁有 Amazon Redshift 和 Amazon Redshift 資料操作的最低許可一組。API若要使用機密連線到資料庫,您也必須擁有 Secrets Manager 許可。
若要讓使用者在 Amazon Redshift 主控台上存取查詢編輯器,請附加AmazonRedshiftQueryEditor
和受AmazonRedshiftReadOnlyAccess
AWS 管政策。此原AmazonRedshiftQueryEditor
則允許使用者僅擷取自己SQL陳述式的結果的權限。也就是說,由AmazonRedshiftQueryEditor
AWS 受管理策略的這一aws:userid
部分所示提交的陳述式。
{ "Sid": "DataAPIIAMSessionPermissionsRestriction", "Action": [ "redshift-data:GetStatementResult", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ListStatements" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } }
若要允許使用者擷取同一IAM角色之其他人的SQL陳述式結果,請建立您自己的原則,而不需要條件限制目前使用者的存取權限。同時,請限制只有管理員能獲得變更政策的存取權。
要使用查詢編輯器 v2 所需的許可
若要讓使用者使用 Amazon Redshift 查詢編輯器 v2,該使用者必須擁有 Amazon Redshift、查詢編輯器 v2 操作以及其他 AWS 服務 (例如 AWS Key Management Service AWS Secrets Manager、和標記服務) 的最低許可集。
若要讓使用者擁有查詢編輯器 v2 的完整存取權,請附加受AmazonRedshiftQueryEditorV2FullAccess
AWS 管理的原則。AmazonRedshiftQueryEditorV2FullAccess
政策會讓使用者獲得與同一團隊中的其他成員共用查詢編輯器 v2 資源 (例如查詢) 的許可。如需如何控制查詢編輯器 v2 資源存取權的詳細資訊,請參閱主控IAM台中查詢編輯器 v2 之特定受管理原則的定義。
某些 Amazon Redshift 查詢編輯器 v2 AWS 受管政策會在條件範圍內使用 AWS 標籤來設定對資源的存取範圍。在查詢編輯器 v2 中,共用查詢是以附加至主體 (IAM角色) 之IAM原則"aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}"
中的標籤索引鍵和值為基礎。 AWS 帳戶 具有相同標籤值 (例如accounting-team
) 的相同主參與者位於查詢編輯器 v2 中的相同專案團隊中。您一次只能與一個團隊相關聯。具有管理權限的使用者可以在IAM主控台中設定專案團隊,方法是為所有團隊成員提供相同的sqlworkbench-team
標籤值。如果變更IAM使用者或IAM角色的標籤值,則在共用資源中反映此變更之前,可能會有延遲。sqlworkbench-team
如果資源 (例如查詢) 的標籤值發生變更,則一樣可能要等一段時間才會反映此變更。團隊成員還必須擁有 tag:GetResources
許可才能共用。
範例:若要新增IAM角色的accounting-team
標籤
登入 AWS Management Console 並開啟IAM主控台,位於https://console.aws.amazon.com/iam/
。 在主控台導覽窗格中,選擇 Roles (角色),然後選擇您要編輯的角色名稱。
選擇標籤索引標籤,然後選擇新增標籤。
新增標籤索引鍵 sqlworkbench-team 和值
accounting-team
。選擇 Save changes (儲存變更)。
現在,當IAM主參與者 (附加了此IAM角色) 與專案團隊共用查詢時,具有相同
accounting-team
標籤值的其他主參與者可以檢視查詢。
如需有關如何將標籤附加至主參與者 (包括IAM角色和使IAM用者) 的詳細資訊,請參閱使用IAM者指南中的標記IAM資源。
您也可以使用身分提供者 (IdP) 在工作階段層級設定團隊。這可讓多位使用相同IAM角色的使用者擁有不同的專案團隊。IAM角色信任原則必須允許sts:TagSession
作業。如需詳細資訊,請參閱《IAM使用指南》中的新增工作階段標籤所需的權限。將主參與者標籤屬性新增至 IdP 提供的SAML宣告。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team"> <AttributeValue>accounting-team</AttributeValue> </Attribute>
遵循身分識別提供者 (IdP) 的指示,將來自目錄的內容填入SAML屬性。如需身分識別提供者 (IdPs) 和 Amazon Redshift 的詳細資訊,請參閱IAM使用者指南中的使用IAM驗證產生資料庫使用者認證和身分識別供應商和聯合。
sqlworkbench:CreateNotebookVersion
可准許在帳戶上取得筆記本儲存格的目前內容並建立筆記本版本。這意味著,在建立版本時,筆記本的目前內容會與版本的內容相同。之後,當目前的筆記本更新時,版本中的儲存格內容會保持不變。sqlworkbench:GetNotebookVersion
可准許取得筆記本的版本。在筆記本上沒有 sqlworkbench:BatchGetNotebookCell
許可但有 sqlworkbench:CreateNotebookVersion
和 sqlworkbench:GetNotebookVersion
許可的使用者可以存取版本中的筆記本儲存格。這位沒有 sqlworkbench:BatchGetNotebookCell
許可的使用者仍然可以透過先建立版本,然後取得所建立的這個版本,以擷取筆記本儲存格的內容。
要使用 Amazon Redshift 排程器所需的許可
使用 Amazon Redshift 排程器時,您可以設定與 Amazon Redshift 排程器 (scheduler.redshift.amazonaws.com
) 具有信任關係的IAM角色,以允許排程器代表您執行許可。您也可以將政策 (許可) 附加到要排程之 Amazon Redshift API 操作的角色。
下列範例會以JSON格式顯示政策文件,以便與 Amazon Redshift 排程器和 Amazon Redshift 建立信任關係。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "scheduler.redshift.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
如需有關信任實體的詳細資訊,請參閱《IAM使用指南》中的建立角色以將權限委派給 AWS 服務。
您也必須新增要排程之 Amazon Redshift 操作的許可。
若要讓排程器使用此ResizeCluster
作業,請新增與您的IAM原則類似下列項目的權限。是否需要加強政策限制,視環境而定。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:ResizeCluster", "Resource": "*" } ] }
如需為 Amazon Redshift 排程器建立角色的步驟,請參閱IAM使用者指南中的建立 AWS 服務角色 (主控台)。在IAM主控台中建立角色時,請進行下列選擇:
針對 Choose the service that will use this role (選擇將使用此角色的服務):選擇 Redshift。
針對 Select your use case (選取您的使用案例):選擇 Redshift - Scheduler (Redshift - 排程器)。
建立政策,或將政策附加到允許排程 Amazon Redshift 操作的角色。選擇 Create policy (建立政策) 或修改角色以連接政策。輸入要排程之作業的JSON原則。
建立角色之後,請編輯IAM角色的「信任關係」以包含服務
redshift.amazonaws.com
。
您建立的IAM角色具有scheduler.redshift.amazonaws.com
和的信任實體redshift.amazonaws.com
。它也有一個附加的政策,允許支援的 Amazon Redshift API 動作,例如。"redshift:ResizeCluster"
使用 Amazon EventBridge 排程器所需的許可
使用 Amazon EventBridge 排程器時,您可以設定與排程 EventBridge 器 (events.amazonaws.com
) 具有信任關係的IAM角色,以允許排程器代表您執行許可。您也可以將政策 (許可) 附加到要排程之 Amazon Redshift 資料API操作的角色,以及 Amazon EventBridge 操作的政策。
使用主控台上的 Amazon Redshift 查詢編輯器建立 EventBridge 排程查詢時,可以使用排程器。
您可以建立IAM角色,以便在IAM主控台上執行排程查詢。在此IAM角色中,附加AmazonEventBridgeFullAccess
和AmazonRedshiftDataFullAccess
。
下列範例會以JSON格式顯示原則文件,以便設定與 EventBridge 排程器之間的信任關係。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }
如需有關信任實體的詳細資訊,請參閱《IAM使用指南》中的建立角色以將權限委派給 AWS 服務。
如需為 EventBridge 排程器建立角色的步驟,請參閱《使用指南》中的〈建立 AWS 服務角色 (主控台) IAM 〉。在IAM主控台中建立角色時,請進行下列選擇:
對於 [選擇將使用此角色的服務]:選擇 [CloudWatch 事件]。
對於選取您的使用案例:選擇CloudWatch 事件。
附加以下許可政策:
AmazonEventBridgeFullAccess
和AmazonRedshiftDataFullAccess
。
您建立的IAM角色具有的信任實體events.amazonaws.com
。它也有一個附加政策,允許支援的 Amazon Redshift 資料API動作,例如,"redshift-data:*"
.
要使用 Amazon Redshift 機器學習 (ML) 所需的許可
接下來,您可以找到要針對不同使用案例使用 Amazon Redshift 機器學習 (ML) 所需之許可的描述。
若要讓您的使用者在 Amazon 上使用 Amazon Redshift ML SageMaker,請使用比預設政策限制更嚴格的IAM角色來建立角色。您可以使用下列政策。您也可以修改此政策以因應您的需求。
下列政策顯示使用 Amazon Redshift 提供的模型說明功能執行 SageMaker 自動輔助駕駛所需的許可。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com" ] } } } ] }
以下政策顯示允許存取 Amazon DynamoDB、Redshift 頻譜和 Amazon 聯合的完整最低許可。RDS
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable", "dynamodb:Getitem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*redshift*", "arn:aws:dynamodb:*:*:table/*redshift*/index/*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*redshift*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "elasticmapreduce:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:*:table/*redshift*/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "glue.amazonaws.com", "sagemaker.amazonaws.com", "athena.amazonaws.com" ] } } } ] }
或者,若要使用 AWS KMS 金鑰進行加密,請將下列權限新增至策略。
{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] }
若要允許 Amazon Redshift 並 SageMaker 假設上述IAM角色與其他服務互動,請將以下信任政策新增至該角色。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
在上文中,Amazon S3 儲存貯體 redshift-downloads/redshift-ml/
是用於其他步驟和範例之範例資料的儲存所在位置。如果您不需要從 Amazon S3 載入資料,則可以移除此儲存貯體。或者,也可以將其取代為您用來將資料載入 Amazon Redshift 的其他 Amazon S3 儲存貯體。
your-account-id
your-role
、和your-s3-bucket
值是您在CREATEMODEL命令中指定的帳戶 ID、角色和值區。
或者,如果您指定 AWS KMS 要與 Amazon Redshift ML 搭配使用的 AWS KMS 金鑰,您也可以使用範例政策的金鑰區段。該your-kms-key
值是您用來做為CREATEMODEL指令一部分的金鑰。
當您為超參數調整工作指定私有虛擬私人雲端 (VPC) 時,請新增下列權限。
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
若要使用模型說明,請確定您具有呼叫作 SageMakerAPI業的權限。建議您使用 AmazonSageMakerFullAccess
受管政策。如果您想要建立具有更嚴格策略的IAM角色,請使用以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker::CreateEndpoint", "sagemaker::CreateEndpointConfig", "sagemaker::DeleteEndpoint", "sagemaker::DeleteEndpointConfig", "sagemaker::DescribeEndpoint", "sagemaker::DescribeEndpointConfig", "sagemaker::DescribeModel", "sagemaker::InvokeEndpoint", "sagemaker::ListTags" ], "Resource": "*" } ] }
如需有關AmazonSageMakerFullAccess
受管政策的詳細資訊,請參閱 Amazon SageMaker 開發人員指南AmazonSageMakerFullAccess中的。
如果您想要建立 Forecast 模型,建議您使用 AmazonForecastFullAccess
受管政策。如果您想要使用更嚴格的原則,請將下列原則新增至您的IAM角色。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:CreateAutoPredictor", "forecast:CreateDataset", "forecast:CreateDatasetGroup", "forecast:CreateDatasetImportJob", "forecast:CreateForecast", "forecast:CreateForecastExportJob", "forecast:DeleteResourceTree", "forecast:DescribeAutoPredictor", "forecast:DescribeDataset", "forecast:DescribeDatasetGroup", "forecast:DescribeDatasetImportJob", "forecast:DescribeForecast", "forecast:DescribeForecastExportJob", "forecast:StopResource", "forecast:TagResource", "forecast:UpdateDatasetGroup" ], "Resource": "*" } ] }
如需有關 Amazon Redshift ML 的詳細資訊,請參閱在 Amazon Redshift 中使用機器學習或. CREATEMODEL
串流擷取的許可
串流擷取可與兩個服務搭配運作。這些是 Kinesis Data Streams 和 Amazon MSK。
要搭配 Kinesis Data Streams 使用串流擷取所需的許可
您可以在開始從 Amazon Kinesis Data Streams 擷取串流中找到包含受管政策範例的程序。
透過 Amazon 使用串流擷取所需的許可 MSK
您可以在開始從 Amazon Managed Streaming for Apache Kafka 擷取串流中找到包含受管政策範例的程序。
使用資料共用API作業所需的權限
若要控制對資料共用作業的存取,請使用IAM以動API作為基礎的原則。如需有關如何管理IAM策略的資訊,請參閱《IAM使用指南》中的〈管理IAM策略〉。
具體而言,假設生產者叢集管理員需要使用 AuthorizeDataShare
呼叫來為 AWS 帳戶外部的資料共用授權輸出。在此情況下,您會設定IAM以動作為基礎的原則來授與此權限。使用 DeauthorizeDataShare
呼叫以撤銷輸出。
使用以IAM動作為基礎的策略時,您也可以在策略中指定IAM資源,例如DataShareARN
。以下內容會顯示 DataShareARN
的格式和範例。
arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare
您可以在原則中指定AuthorizeDataShare
資料清單名稱,以限制對特定資料清單的存取。IAM
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }
您也可以將IAM原則限制為特定生產者叢集擁有的所有資料庫。若要這麼做,請使用萬用字元或星號來取代政策中的 datashare-name
值。保留叢集的 namespace-guid
值。
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*
以下是防止實體呼叫AuthorizeDataShare
特定生產者叢集所擁有的資料存取的IAM原則。
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }
DataShareARN
根據資料清單名稱和擁有叢集命名空間的全域唯一 ID (GUID) 來限制存取。其會透過將名稱指定為星號來進行此操作。
的資源策略 GetClusterCredentials
若要使用JDBC或與資料庫認證ODBC連線到叢集IAM資料庫,或以程式設計方式呼叫GetClusterCredentials
動作,您需要最低限度的一組權限。您至少需要呼叫 redshift:GetClusterCredentials
動作的許可,該動作具有 dbuser
資源的存取權。
如果您使用JDBC或ODBC連接,而不是server
和port
您可以指定cluster_id
和region
,但要這樣做,您的策略必須允許具有cluster
資源訪問權限的redshift:DescribeClusters
操作。
如果您使用選用參數 Autocreate
、DbGroups
和 DbName
來呼叫 GetClusterCredentials
,請務必也允許動作並允許下表所列資源的存取權。
GetClusterCredentials 參數 |
動作 |
資源 |
---|---|---|
|
redshift:CreateClusterUser |
|
|
redshift:JoinGroup |
|
|
NA | dbname |
如需資源的相關資訊,請參閱Amazon Redshift 資源和操作。
您也可以在政策包含下列條件:
-
redshift:DurationSeconds
-
redshift:DbName
-
redshift:DbUser
如需條件的相關資訊,請參閱在政策中指定條件。
客戶受管政策範例
在本節中,您可以找到授予各種 Amazon Redshift 動作之許可的使用者政策範例。當您使用 Amazon Redshift 時,這些政策會起作用 API AWS SDKs,或. AWS CLI
注意
所有範例均使用美國西部 (奧勒岡) 區域 (us-west-2
),並包含虛擬帳戶。IDs
範例 1:允許使用者對所有 Amazon Redshift 動作和資源的完整存取權
下列政策允許存取處理所有資源的所有 Amazon Redshift 動作。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ] }
Action
元素中的值 redshift:*
指出 Amazon Redshift 中的所有動作。
範例 2:拒絕使用者存取一組 Amazon Redshift 動作
預設會拒絕所有的許可。不過,有時您必須明確拒絕對特定動作或動作集的存取權。下列政策允許對所有 Amazon Redshift 動作的存取權,並明確拒絕對名稱開頭為 Delete
之任何 Amazon Redshift 動作的存取權。此政策適用於 us-west-2
中的所有 Amazon Redshift 資源。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ], "Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ] }
範例 3:允許使用者管理叢集
下列政策允許使用者建立、刪除、修改所有叢集和將它們重新開機,然後拒絕刪除叢集名稱開頭為 protected
之任何叢集的許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ] }
範例 4:允許使用者授權和撤銷快照存取
下列政策允許使用者 (例如使用者 A) 來執行下列動作:
-
授予對透過名為
shared
之叢集建立的任何快照的存取權。 -
撤銷對透過
shared
叢集建立、快照名稱開頭為revokable
之任何快照的快照存取權。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow" }, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ] }
如果使用者 A 已允許使用者 B 存取快照,使用者 B 必須具備以下這類的政策以允許使用者 B 從快照還原叢集。下列政策允許使用者 B 從快照描述和還原,以及建立叢集。這些叢集名稱的開頭必須是 from-other-account
。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ] }
範例 5:允許使用者複製叢集快照和從快照還原叢集
下列政策允許使用者複製透過名為 big-cluster-1
之叢集建立的任何快照,以及還原快照名稱開頭為 snapshot-for-restore
的任何快照。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*" ], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ] }
範例 6:允許使用者存取 Amazon Redshift,和相關 AWS 服務的一般動作和資源
下列範例政策允許存取 Amazon Redshift、Amazon 簡單通知服務 (AmazonSNS) 和亞馬遜的所有動作和資源。 CloudWatch它還允許在帳戶下的所有相關 Amazon EC2 資源上執行指定的操作。
注意
此範例政策中指定的 Amazon 動EC2作不支援資源層級許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }
範例 7:允許使用者使用 Amazon Redshift 主控台標記資源
以下範例政策可讓使用者使用 AWS Resource Groups透過 Amazon Redshift 主控台標記資源。此政策可附加至會叫用新的或原始 Amazon Redshift 主控台的使用者角色。如需標記的相關資訊,請參閱在 Amazon Redshift 中標記資源。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Tagging permissions", "Effect": "Allow", "Action": [ "redshift:DeleteTags", "redshift:CreateTags", "redshift:DescribeTags", "tag:UntagResources", "tag:TagResources" ], "Resource": "*" } ] }
使用政策範例 GetClusterCredentials
以下範例政策使用這些範例參數值:
-
區域:
us-west-2
-
AWS 帳號:
123456789012
-
叢集名稱:
examplecluster
以下策略启用 GetCredentials
、CreateClusterUser
和 JoinGroup
操作。此原則會使用條件金鑰,僅在使用 AWS 者識別碼相符時允許GetClusterCredentials
和CreateClusterUser
動作"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
。IAM僅對"testdb"
數據庫請求訪問。此政策也允許使用者加入名為 "common_group"
的群組。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ] }