本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
先決條件
您的 Aurora PostgreSQL 資料庫叢集可以 AWS Glue Data Catalog 代表您從 Amazon S3、Amazon S3 Tables 和 讀取 Iceberg 和 Parquet 資料。在您查詢該資料之前,叢集需要三件事:向這些服務進行身分驗證的方法、包含aurora_analytics延伸模組的引擎版本,以及 VPC 的網路路徑。下列各節將逐步引導您建立 IAM 政策和角色,以授予您計劃查詢之特定資料的讀取存取權、將該角色連接至資料庫叢集、在您的資料庫叢集參數群組中啟用延伸,以及設定叢集用來連接 Amazon S3 和 的網路路徑 AWS Glue。您可以在任何符合版本需求的現有 Aurora PostgreSQL 資料庫叢集上完成這些步驟。
設定步驟概觀
高階設定步驟如下所示:
-
建立授予資料讀取存取權的 IAM 政策。
-
建立 IAM 角色並連接該政策。
-
將 IAM 角色連接至 Aurora 資料庫叢集。
-
如果您的叢集位於私有子網路中,請設定聯網 (VPC 端點)。
-
在資料庫叢集參數群組中啟用
aurora_analytics延伸。
建立 IAM 政策
建立 IAM 政策,根據資料的格式及其儲存位置,將延伸項目的讀取存取權授予 Amazon S3,以及選擇性地授予 AWS Glue Data Catalog 或 Amazon S3 Tables。
最低權限取決於您參考資料的方式:資料格式 (Parquet 或 Iceberg) AWS Glue Data Catalog、來源 (Amazon S3 或 Amazon S3 Tables),以及您指向單一檔案或目錄。下表列出常見相同帳戶案例的最低 IAM 角色權限:
| 來源 | 最低權限 |
|---|---|
Amazon S3,單一檔案 (s3://bucket/path/data.parquet) |
s3:GetObject |
Amazon S3、目錄或 glob (s3://bucket/path/) |
s3:GetObject, s3:ListBucket |
AWS Glue Data Catalog (arn:aws:glue:us-east-1:123456789012:table/mydb/mytable) |
glue:GetTable + 上述的 Amazon S3 權限 |
Amazon S3 資料表,直接 ARN (arn:aws:s3tables:us-east-1:123456789012:bucket/mybucket/table/table_id) |
s3tables:GetTable, s3tables:GetTableBucket, s3tables:GetTableData, s3tables:GetNamespace |
Amazon S3 資料表,透過 AWS Glue 目錄 ARN (arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/mybucket/myns/mytable) |
glue:GetTable 以上 + s3tables權限 |
注意
s3:ListBucket 只有在延伸項目列出 Amazon S3 字首來探索檔案 (例如 Parquet 目錄或 glob 存取) 時才需要。Iceberg 會從資訊清單解析確切的檔案路徑,這表示s3:ListBucket不需要。
注意
如果您的資料使用 SSE-KMS 加密,請新增 kms:Decrypt 至 KMS 金鑰。
注意
IMPORT FOREIGN SCHEMA (glue:GetTables 或 s3tables:ListTables)、跨帳戶存取、resource-policy-based存取,以及 Lake Formation 管理的資料表需要額外的權限。
如需詳細的政策範例,請參閱 IAM 政策參考。如需建立 IAM 政策的詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策。
建立 IAM 角色
建立 Aurora 可擔任的 IAM 角色,以代表延伸存取您的 Amazon S3 資料。
使用 AWS 管理主控台建立 IAM 角色
-
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇角色,然後選擇建立角色。
-
針對信任的實體類型,請選擇 AWS 服務。
-
針對使用案例,從服務清單中選擇 RDS。
-
從使用案例選項中選擇 RDS - 將角色新增至資料庫。
-
選擇下一步。
-
選取您在 中建立的政策建立 IAM 政策。您也可以選擇預先建置的許可政策,例如 AmazonS3ReadOnlyAccess 和 AWSGlueConsoleFullAccess。
-
選擇下一步。
-
針對角色名稱,輸入角色的名稱 (例如
AuroraAnalyticsRole)。 -
選擇建立角色。
使用 CLI 建立 IAM AWS 角色
-
建立名為 的角色
AuroraAnalyticsRole:aws iam create-role \ --role-name AuroraAnalyticsRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }' -
將政策連接到角色:
aws iam attach-role-policy \ --role-name AuroraAnalyticsRole \ --policy-arn arn:aws:iam::123456789012:policy/AuroraAnalyticsReadAccess
請記下 角色 ARN。當您將角色連接到 Aurora 資料庫叢集時,需要用到它。如需詳細資訊,請參閱《 IAM 使用者指南》中的建立 IAM 角色。
將 IAM 角色連接至 Aurora 資料庫叢集
建立資料庫叢集之後,請將您為延伸模組建立的 IAM 角色建立關聯。
使用 AWS 管理主控台連接 IAM 角色
-
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇資料庫,然後選擇 Aurora PostgreSQL 資料庫叢集的名稱。
-
在 Connectivity & security (連線能力與安全性) 標籤上的 Manage IAM roles (管理 IAM 角色) 區段中,選擇要在 Add IAM roles to this cluster (新增 IAM 角色到此叢集) 下新增的角色。
-
針對特徵,選擇 AuroraAnalytics。
-
選擇 Add role (新增角色)。
使用 CLI 連接 IAM AWS 角色
-
aws rds add-role-to-db-cluster \ --region us-east-1 \ --db-cluster-identifier my-analytics-cluster \ --feature-name AuroraAnalytics \ --role-arn arn:aws:iam::123456789012:role/AuroraAnalyticsRole
IAM 角色狀態在成功連接後會顯示為作用中。如需詳細資訊,請參閱 AWS CLI 命令參考中的 add-role-to-db-cluster。
設定聯網
當您的 Aurora 資料庫叢集部署在私有子網路中時,它需要網路路徑才能到達 Amazon S3 和 (選用) AWS Glue。您可以使用 VPC 端點 (建議) 或透過 NAT 閘道提供此功能。
VPC 端點會保留 AWS 網路上的流量,而不會周遊公有網際網路,而且 Amazon S3 閘道端點無需額外每小時收費,這使得它們成為建議的方法。如果您的 VPC 已透過 NAT 閘道路由傳出流量,但透過公有路徑傳送流量並產生 NAT 資料處理費用,NAT 閘道也會運作。本節其餘部分說明 VPC 端點設定。如需 NAT 閘道的詳細資訊,請參閱 NAT 閘道。
| 服務 | 端點類型 | 的必要項目 |
|---|---|---|
Amazon S3 (com.amazonaws.region.s3) |
閘道 | Amazon S3 和 Amazon S3 Tables 資料存取 |
AWS Glue (com.amazonaws.region.glue) |
介面 | AWS Glue Data Catalog 存取 |
建立 Amazon S3 閘道端點
建立 Amazon S3 閘道端點,並將其與 Aurora 資料庫叢集子網路使用的路由表建立關聯。
如需詳細資訊,請參閱 AWS PrivateLink 指南中的為 Amazon S3 建立閘道端點。
建立 AWS Glue 介面端點
如果您使用的是 AWS Glue Data Catalog,請使用下列組態建立 AWS Glue VPC 介面端點:
-
在與 Aurora 資料庫叢集相同的子網路中部署。
-
啟用私有 DNS。
-
連接安全群組,允許來自 VPC CIDR 區塊的 TCP 連接埠 443 上的傳入流量,或來自 Aurora PostgreSQL 資料庫叢集所使用的相同安全群組。
如需詳細資訊,請參閱《 AWS PrivateLink 指南》中的建立介面端點。
在參數群組中啟用 功能
依預設,aurora_analytics.enabled 參數設為 false。建立資料庫叢集之後,請在資料庫叢集參數群組true中將此參數設定為 以啟用此功能。
使用 CLI AWS 啟用功能
-
aws rds modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name my-analytics-params \ --parameters "ParameterName=aurora_analytics.enabled,ParameterValue=true,ApplyMethod=immediate"
作為動態參數, 會立即aurora_analytics.enabled套用而不重新啟動。
注意
這適用於資料庫叢集使用自訂資料庫叢集參數群組時。您無法修改預設參數群組。如果您的叢集仍然使用預設值,請先建立自訂資料庫叢集參數群組,並將其與叢集建立關聯。關聯不同的參數群組需要重新啟動資料庫執行個體,新群組才能生效,即使aurora_analytics.enabled本身是動態的。如需詳細資訊,請參閱《Aurora 使用者指南》中的使用資料庫叢集參數群組。
使用 AWS 管理主控台啟用 功能
-
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Parameter groups (參數群組)。
-
選擇與您的 Aurora 資料庫叢集相關聯的參數群組。
-
搜尋
aurora_analytics.enabled。 -
將值設定為
true。 -
選擇儲存變更。
後續步驟
完成這些步驟後,您就可以開始使用。如需詳細資訊,請參閱開始使用。
如需為您的工作負載選擇正確資料庫執行個體類別和大小的指引,請參閱 最佳實務。