本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 Amazon Redshift 使用身分型政策 (IAM 政策)
本主題提供身分型政策的範例,其中帳戶管理員可以將許可政策連接至身分 IAM (即使用者、群組和角色)。
重要
建議您先檢閱簡介主題,其中說明基本概念及有何選項可供您管理對 Amazon Redshift 資源的存取。如需詳細資訊,請參閱管理 Amazon Redshift 資源存取許可的概觀。
以下顯示許可政策範例。此政策允許使用者建立、刪除、修改和重新啟動所有叢集,然後拒絕刪除或修改叢集識別符開頭為 production
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 Resource Name ()。因此,此陳述式適用於叢集識別符開頭為 的根 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 主控台和 受管AmazonRedshiftReadOnlyAccess
AmazonRedshiftFullAccess
授予 AWS 帳戶所有 Amazon Redshift 資源的完整存取權。此外,這個政策還會授予所有 Amazon Redshift Serverless 資源的完整存取權。
您可以在IAM主控台和 受管AmazonRedshiftFullAccess
AmazonRedshiftQueryEditor
授予 Amazon Redshift 主控台上查詢編輯器的完整存取權。
您可以在IAM主控台和 受管AmazonRedshiftQueryEditor
AmazonRedshiftDataFullAccess
授予 AWS 帳戶對 Amazon Redshift Data API操作和資源的完整存取權。
您可以在IAM主控台和 受管AmazonRedshiftDataFullAccess
AmazonRedshiftQueryEditorV2FullAccess
授予 Amazon Redshift 查詢編輯器 v2 操作和資源的完整存取權。此政策也會授予其他必要服務的存取權。
您可以在 管理政策參考指南 中找到IAM主控台上的 AmazonRedshiftQueryEditorV2FullAccess
AmazonRedshiftQueryEditorV2NoSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,而不共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體無法標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。
您可以在 管理政策參考指南 中找到IAM主控台上的 AmazonRedshiftQueryEditorV2NoSharing
AmazonRedshiftQueryEditorV2ReadSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,並可有限度地共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體可以標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。獲得授予的主體可以讀取與其團隊共用的資源,但無法更新這些資源。
您可以在 IAM 主控台和 AmazonRedshiftQueryEditorV2ReadSharing
AmazonRedshiftQueryEditorV2ReadWriteSharing
授予使用 Amazon Redshift 查詢編輯器 v2 的能力,並可共用資源。此政策也會授予其他必要服務的存取權。使用此政策的主體可以標記其資源 (例如查詢),以便與相同 AWS 帳戶中的其他主體共用。獲得授予的主體可以讀取和更新與其團隊共用的資源。
您可以在 IAM 主控台和 AmazonRedshiftQueryEditorV2ReadWriteSharing
AmazonRedshiftServiceLinkedRolePolicy
您無法 AmazonRedshiftServiceLinkedRolePolicy 連接至IAM實體。此政策會附加至服務連結角色,可讓 Amazon Redshift 存取帳戶資源。如需詳細資訊,請參閱為 Amazon Redshift 使用服務連結角色。
您可以在IAM主控台和 受管AmazonRedshiftServiceLinkedRolePolicy
AmazonRedshiftAllCommandsFullAccess
准許使用從 Amazon Redshift 主控台建立IAM的角色,並將其設定為叢集COPY從 Amazon S3、UNLOAD、、 CREATE EXTERNAL SCHEMA CREATE EXTERNAL FUNCTION和 CREATEMODEL命令執行 的預設值。此政策也授予許可,以執行相關服務的SELECT陳述式,例如 Amazon S3、 CloudWatch Logs、Amazon SageMaker或 AWS Glue。
您可以在IAM主控台和 受管AmazonRedshiftAllCommandsFullAccess
您也可以建立自己的自訂IAM政策,以允許 Amazon Redshift API操作和資源的許可。您可以將這些自訂政策連接至需要這些許可IAM的角色或群組。
Amazon Redshift 對 AWS 受管政策的更新
檢視自此服務開始追蹤這些變更以來,Amazon Redshift 受 AWS 管政策更新的詳細資訊。如需此頁面變更的自動提醒,請在 Amazon Redshift 文件歷史記錄頁面上訂閱RSS摘要。
變更 | 描述 | 日期 |
---|---|---|
|
2024 年 3 月 8 日 | |
|
2024 年 2 月 21 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
|
2024 年 2 月 21 日 |
|
2024 年 2 月 21 日 | |
|
2024 年 2 月 21 日 | |
AmazonRedshiftReadOnlyAccess – 更新現有政策 |
|
2024 年 2 月 7 日 |
|
2023 年 10 月 31 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
|
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 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
|
2023 年 3 月 21 日 |
|
2023 年 3 月 21 日 | |
|
2023 年 3 月 21 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
|
2023 年 2 月 2 日 |
|
2023 年 2 月 2 日 | |
|
2023 年 2 月 2 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 | |
為了授予使用筆記本的許可,Amazon Redshift 已新增下列動作的許可:
|
2022 年 10 月 17 日 | |
Amazon Redshift 新增了命名空間 |
2022 年 9 月 7 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 | |
Amazon Redshift 已新增動作 |
2022 年 8 月 30 日 | |
AmazonRedshiftFullAccess – 更新現有政策 |
Amazon Redshift Serverless 的許可會新增至現有的 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 日 |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 | |
Amazon Redshift 已增加動作 |
2022 年 6 月 15 日 | |
若要啟用對新 Amazon Redshift Serverless 端點的公開存取,Amazon Redshift 會配置彈性 IP 地址,並將彈性 IP 地址與客戶帳戶中VPC端點的彈性網路界面建立關聯。其會透過服務連結角色所提供的許可來執行此操作。為了實現這個使用案例,用來配置和釋放彈性 IP 地址的動作已新增至 Amazon Redshift Serverless 服務連結角色。 |
2022 年 5 月 26 日 | |
動作 |
2022 年 2 月 22 日 | |
AmazonRedshiftQueryEditorV2NoSharing – 更新現有政策 |
動作 |
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、UNLOAD、、CREATEEXTERNALSCHEMACREATEEXTERNALFUNCTION、 CREATE MODEL或 CREATELIBRARY命令執行 的預設值。 |
2021 年 11 月 18 日 | |
Amazon Redshift 新增了新動作的許可,以允許管理 Amazon Redshift CloudWatch 日誌群組和日誌串流,包括 Audit-log 匯出。 |
2021 年 11 月 15 日 | |
AmazonRedshiftFullAccess – 更新現有政策 |
Amazon Redshift 新增了允許模型可解釋性、DynamoDB、Redshift Spectrum 和 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 服務的許可才能存取 資源。如需 Redshift Spectrum IAM政策中許可的詳細資訊,請參閱 IAMAmazon Redshift 資料庫開發人員指南中的 Amazon Redshift Spectrum 政策。
要使用 Amazon Redshift 主控台所需的許可
若要讓使用者使用 Amazon Redshift 主控台,該使用者必須擁有一組最低許可,允許使用者描述其 AWS 帳戶的 Amazon Redshift 資源。這些許可還必須允許使用者描述其他相關資訊,包括 Amazon EC2安全、Amazon CloudWatch、Amazon SNS和網路資訊。
如果您建立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 Data API操作的一組最低許可。若要使用機密連線到資料庫,您也必須擁有 Secrets Manager 許可。
若要讓使用者存取 Amazon Redshift 主控台上的查詢編輯器,請連接 AmazonRedshiftQueryEditor
和 AmazonRedshiftReadOnlyAccess
AWS 受管政策。此AmazonRedshiftQueryEditor
政策允許使用者僅擷取自己的SQL陳述式結果。也就是說, 提交的陳述式aws:userid
與 AmazonRedshiftQueryEditor
AWS 受管政策本節中所示的陳述式相同。
{ "Sid":"DataAPIIAMStatementPermissionsRestriction", "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 Secrets Manager,例如 AWS Key Management Service、 和標記服務。
若要讓使用者完整存取查詢編輯器 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 中會位於相同團隊。您一次只能與一個團隊相關聯。具有管理許可的使用者可以透過為所有團隊成員提供相同sqlworkbench-team
標籤值,在IAM主控台中設定團隊。如果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>
請遵循 Identity 提供者 (IdP ) 的指示,將來自您目錄的內容填入 SAML 屬性。如需有關 Identity 提供者 (IdPs) 和 Amazon Redshift 的詳細資訊,請參閱 IAM 使用者指南 中的 使用IAM身分驗證來產生資料庫使用者憑證 和 Identity 提供者和聯合。
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 Data 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 排程器建立角色的步驟,請參閱 IAM 使用者指南 中的為 AWS 服務建立角色 (主控台)。在IAM主控台中建立角色時,請做出這些選擇:
-
對於選擇將使用此角色的服務:選擇CloudWatch 事件。
-
對於選取您的使用案例 :選擇CloudWatch 事件 。
-
附加以下許可政策:
AmazonEventBridgeFullAccess
和AmazonRedshiftDataFullAccess
。
您建立IAM的角色具有受信任的 實體events.amazonaws.com
。它還具有連接政策,允許支援的 Amazon Redshift Data API動作,例如 "redshift-data:*"
。
要使用 Amazon Redshift 機器學習 (ML) 所需的許可
接下來,您可以找到要針對不同使用案例使用 Amazon Redshift 機器學習 (ML) 所需之許可的描述。
若要讓使用者搭配 Amazon 使用 Amazon Redshift ML SageMaker,請使用比預設更嚴格的政策來建立IAM角色。您可以使用下列政策。您也可以修改此政策以因應您的需求。
下列政策顯示從 Amazon Redshift 執行具有模型可解釋性之 SageMaker Autopilot 所需的許可。
{ "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 Spectrum 和 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、角色和儲存貯體。
或者,如果您指定要與 Amazon Redshift ML 搭配使用的 AWS KMS 金鑰,則可以使用範例政策的 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" ] }
若要使用模型說明,請確定您有呼叫 SageMaker API操作的許可。建議您使用 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 開發人員指南 AmazonSageMakerFullAccess 中的 。 SageMaker
如果您想要建立 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 Bedrock 模型,建議您使用 AmazonBedrockFullAccess
受管政策。如果您想要使用更嚴格的政策,請將下列政策新增至您的IAM角色。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "*", "arn:aws:bedrock:
>region<
::foundation-model/*" ] } ] }
如需 Amazon Redshift ML 的詳細資訊,請參閱在 Amazon Redshift 、 或 中使用機器學習。 CREATE MODEL CREATE EXTERNAL MODEL
串流擷取的許可
串流擷取可與兩個服務搭配運作。這些是 Kinesis Data Streams 和 Amazon MSK。
要搭配 Kinesis Data Streams 使用串流擷取所需的許可
您可以在開始從 Amazon Kinesis Data Streams 擷取串流中找到包含受管政策範例的程序。
搭配 Amazon 使用串流擷取所需的許可 MSK
您可以在開始從 Amazon Managed Streaming for Apache Kafka 擷取串流中找到包含受管政策範例的程序。
使用資料共用API操作所需的許可
若要控制對資料共用API操作的存取,請使用IAM動作型政策。如需有關如何管理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
您可以在IAM政策中指定資料共用名稱,以限制對特定資料共用的AuthorizeDataShare
存取。
{ "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連線,而不是 port
server
,而且您可以指定 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 Simple Notification Service (AmazonSNS) 和 Amazon 的所有動作和資源 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 主控台的使用者角色。如需標記的相關資訊,請參閱在亞馬遜紅移標記資源。
{ "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 使用者 ID 符合 時,才允許 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" ] } ] }