New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何從本機電腦存取私有 Amazon Redshift 叢集?
我想要使用本機電腦存取位於 Amazon Virtual Private Cloud (Amazon VPC) 私有子網路中的 Amazon Redshift 叢集。
簡短描述
使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和 SQL Workbench/J 來建立 SSH 通道。通道將所有傳入的流量從本機電腦路由至私有 Amazon Redshift 叢集。
解決方法
建立 Amazon VPC、EC2 執行個體和 Amazon Redshift 叢集
若要建立 Amazon VPC、EC2 執行個體和 Amazon Redshift 叢集,請完成下列步驟:
-
建立 Amazon VPC (具有公有和私有子網路)。
-
從 Amazon Linux 2 Amazon Machine Image (AMI) 將 EC2 執行個體啟動到 Amazon VPC 的公有子網路。在建立執行個體時,選擇下列選項:
對於自動指派公共 IP,選擇啟用。或者,將彈性 IP 位址指派給執行個體。
使用 SSH 規則建立新的安全群組。
對於來源,選擇自訂,然後輸入您的 CIDR 區塊。或者,選擇我的 IP。 -
在 Amazon Redshift 主控台上,建立叢集子網路。輸入下列資訊:
對於 VPC ID,選擇您的 Amazon VPC 的 ID。
對於子網路 ID,選擇私有子網路的 ID。 -
將規則新增至安全群組,允許從執行個體的安全群組傳入流量。輸入下列資訊:
對於類型,選擇自訂 TCP。
對於連接埠範圍,輸入 Amazon Redshift 的預設連接埠 5439。
對於來源,選擇自訂,然後輸入安全群組的名稱。 -
啟動新的 Amazon Redshift 叢集,或從快照還原叢集。在其他組態頁面上,選擇下列選項:
對於選擇 VPC,選擇您的 Amazon VPC。
對於叢集子網路群組,選擇您的子網路群組。
對於可公開存取,選擇否。
對於 VPC 安全群組,選擇您的安全群組。等待叢集處於可用狀態。 -
執行下列命令,從本機電腦連接至 EC2 執行個體:
ssh -i "your_key.pem" ec2-user@your_EC2_endpoint
**注意:**將 your_key.pem 和 your_EC2_endpoint 取代為您的值。如需詳細資訊,請參閱使用 SSH 從 Linux 或 macOS 連接至 Linux 執行個體。
-
執行下列命令,以安裝 telnet:
sudo yum install telnet
-
若要使用 telnet 以測試與 Amazon Redshift 叢集的連線,請執行下列命令:
telnet cluster-endpoint cluster-port
**注意:**將 cluster-endpoint 和 cluster-port 取代為您的值。
或者,執行下列命令以使用 dig 來確認您的本機電腦是否可以連接 Amazon Redshift 叢集的私有 IP 位址:dig cluster-endpoint
**注意:**將 cluster-endpoint 取代為您的叢集端點。
建立通道
若要建立通道,請完成下列步驟:
- 在本機電腦上安裝 SQL Workbench/J。
- 下載最新的 Amazon Redshift JDBC 驅動程式。
- 在 SQL Workbench/J 中,使用 JDBC 驅動程式來建立連線設定檔。
- 若要在 SQL Workbench/J 中設定 SSH 連線,請選擇 SSH,然後輸入下列資訊:
對於 SSH 主機名稱,輸入 EC2 執行個體的公有 IP 位址或 DNS。
對於 SSH 連接埠,輸入 22。
對於使用者名稱,輸入 ec2-user。
對於私有金鑰檔案,輸入您在建立 EC2 執行個體時下載的 .pem 檔案。
對於密碼,將欄位保留空白。
對於本機連接埠,輸入任何免費的本機連接埠。依預設,您的 Amazon Redshift 叢集會使用連接埠 5439。
對於資料庫主機名稱,輸入叢集端點。端點不能包含連接埠號碼或資料庫名稱。
對於資料庫連接埠,輸入 5439。
選取重寫 JDBC URL 選項。 - 選擇確定。
- 確保正確輸入 JDBC URL、超級使用者名稱和密碼。
- 若要確認連線是否正常運作,請選擇測試。如需詳細資訊,請參閱在 SQL Workbench/J 網站中的透過 SSH 通道連接。
(選用) 修改 AWS Identity and Access Management (IAM) 使用者的連線
若要以 IAM 使用者身分連接至 Amazon Redshift 叢集,請完成下列步驟來修改連線設定檔:
- 檢閱 IAM 使用者政策。IAM 使用者政策必須允許 dbgroup、dbuser,和 dbnameuser 資源的 GetClusterCredentials、JoinGroup 及 CreateClusterUser Amazon Redshift 動作。以下是 IAM 使用者政策範例:
注意:將 us-west-2 取代為您的叢集所在的 AWS 區域、將 012345678912 取代為您的 AWS 帳戶 ID,並且將 user_name 取代為 Amazon Redshift 使用者的名稱。或者,您可以使用 "*" 而不是特定的使用者名稱。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:eu-west-2:012345678912:dbgroup:clustername/group_name", "arn:aws:redshift:eu-west-2:012345678912:dbuser:clustername/user_name or * ", "arn:aws:redshift:eu-west-2:012345678912:dbname:clustername/database_name" ] } ] }
- 在 SQL Workbench/J 中,將連線設定檔的 JDBC URL 的第一部分變更為 jdbc:redshift:iam。例如,將 JDBC URL 變更為 jdbc:redshift:iam://127.0.0.1:5439/example。
- 選擇擴充屬性,然後輸入下列資訊:
對於 AccessKeyID,輸入 IAM 使用者的存取金鑰 ID。
對於 SecretAccessKey,輸入 IAM 使用者的私密存取金鑰。
(選用) 對於 DbGroups,選擇此選項以強制執行 IAM 使用者加入現有群組。
對於 DbUser,輸入 IAM 使用者的名稱。
對於 AutoCreate,將選項設定為 true。
對於 ClusterID,輸入 Amazon Redshift 叢集的名稱。
對於區域,輸入叢集所在的區域,例如 us-east-1。 - 在叢集連線設定檔頁面上,選擇測試。
相關資訊
相關內容
- 已提問 4 個月前lg...
- 已提問 2 年前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- AWS 官方已更新 3 個月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前