本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
連線至 Amazon Redshift Serverless
在設定 Amazon Redshift Serverless 執行個體後,便可以使用以下概述的各種方法連線到該執行個體。如果您有多個團隊或專案,並且想要分開管理成本,則可以使用不同的 AWS 帳戶。
如需 Amazon Redshift Serverless 可用 AWS 區域 位置的清單,請參閱《》中針對 Redshift Serverless API 列出的端點Amazon Web Services 一般參考。
Amazon Redshift Serverless 會連線到目前 中 AWS 帳戶 的無伺服器環境 AWS 區域。Amazon Redshift Serverless 會在連接埠範圍為 5431 至 5455 和 8191 至 8215 的連接埠範圍內的 VPC 中執行。預設值為 5439。目前,您只能使用 API 操作 UpdateWorkgroup
和 AWS CLI 操作 變更連接埠update-workgroup
。
連線至 Amazon Redshift Serverless
您可以使用下列語法連線到 Amazon Redshift Serverless 中的資料庫 (名為 dev
)。
workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:port/dev
例如,下列連線字串會指定區域 us-east-1。
default.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439/dev
透過 JDBC 驅動程式連線至 Amazon Redshift Serverless
您可以使用下列其中一種方法,透過 Amazon RedShift 所提供的 JDBC 驅動程式第 2 版驅動程式,以偏好的 SQL 用戶端連線至 Amazon Redshift Serverless。
若要透過 JDBC 驅動程式 2.1.x 版或更新版本,使用登入憑證驗證資料庫以進行連線,請使用下列語法。您可以選擇是否使用連接埠號碼;如果未包含,Amazon Redshift Serverless 會預設為連接埠號碼 5439。您可以變更為 5431 至 5455 或 8191 至 8215 之連接埠範圍內的其他連接埠。若要變更無伺服器端點的預設連接埠,請使用 AWS CLI 和 Amazon Redshift API。
jdbc:redshift://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev
例如,下列連線字串會指定工作群組預設值、帳戶 ID 123456789012 以及 us-east-2 區域。
jdbc:redshift://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev
若要使用 JDBC 驅動程式 2.1.x 版或更新版本來與 IAM 連線,請使用下列語法。您可以選擇是否使用連接埠號碼;如果未包含,Amazon Redshift Serverless 會預設為連接埠號碼 5439。您可以變更為 5431 至 5455 或 8191 至 8215 之連接埠範圍內的其他連接埠。若要變更無伺服器端點的預設連接埠,請使用 AWS CLI 和 Amazon Redshift API。
jdbc:redshift:iam://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev
例如,下列連線字串會指定工作群組預設值、帳戶 ID 123456789012 以及 us-east-2 區域。
jdbc:redshift:iam://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev
若為 ODBC,請使用下列語法。
Driver={Amazon Redshift (x64)}; Server=workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com; Database=dev
如果您使用的是 2.1.0.9 之前的 JDBC 驅動程式版本,並使用 IAM 來連線,則需要使用下列語法。
jdbc:redshift:iam://redshift-serverless-<name>:aws-region/database-name
例如,下列連線字串會指定工作群組預設值和 AWS 區域 us-east-1。
jdbc:redshift:iam://redshift-serverless-default:us-east-1/dev
如需驅動程式的相關資訊,請參閱在 Amazon Redshift 中設定連線。
尋找 JDBC 和 ODBC 連線字串
若要使用 SQL 用戶端工具來連線至工作群組,您必須有 JDBC 或 ODBC 連線字串。您可以在 Amazon Redshift Serverless 主控台的工作群組詳細資訊頁面上找到連線字串。
尋找工作群組的連線字串
-
登入 AWS Management Console ,並在 Amazon Redshift 主控台開啟 https://https://console.aws.amazon.com/redshiftv2/
。 -
在導覽選單上,選擇 Redshift Serverless。
-
在導覽選單上,選擇工作群組組態,然後從清單中選擇工作群組名稱以開啟其詳細資訊。
-
General information (一般資訊) 區段中提供了 JDBC URL 和 ODBC URL 連線字串,以及其他詳細資訊。每個字串都以工作群組執行 AWS 的區域為基礎。選擇適當連線字串旁邊的圖示以複製連線字串。
使用資料 API 連線至 Amazon Redshift Serverless
您也可以使用 Amazon Redshift 資料 API 來連線至 Amazon Redshift Serverless。在 AWS CLI 呼叫中使用 workgroup-name
參數,而非 cluster-identifier
參數。
如需資料 API 的相關資訊,請參閱使用 Amazon Redshift 資料 API。如需會在 Python 中呼叫資料 API 的範例程式碼和其他範例,請參閱開始使用 Redshift 資料 APIquick-start
和 use-cases
資料夾。
使用 SSL 連線到 Amazon Redshift Serverless
設定與 Amazon Redshift Serverless 的安全連線
為了支援 SSL 連線,Redshift Serverless 會為每個工作群組建立並安裝 AWS Certificate Manager (ACM)sslmode
連線選項設定為 require
、 或 verify-ca
,您可能需要下載憑證套件verify-full
。如果您的用戶端需要憑證,Redshift Serverless 會提供套件憑證,如下所示:
從 https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt
下載套件。 預期的 MD5 檢查總和碼為 418dea9b6d5d5de7a8f1ac42e164cdcf。
sha256 檢查總和碼為 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550。
請勿使用位於
https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt
的先前憑證套件。在中國 AWS 區域,從 https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt
:// 下載套件。 預期的 MD5 檢查總和碼為 418dea9b6d5d5de7a8f1ac42e164cdcf。
sha256 檢查總和碼為 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550。
請勿使用位於
https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ca-bundle.crt
和https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem
的先前憑證套件。
重要
Redshift Serverless 已變更 SSL 憑證的管理方式。您可能需要更新目前的信任根 CA 憑證,才能繼續使用 SSL 連線到工作群組。如需 SSL 連線 ACM 憑證的詳細資訊,請參閱 將 SSL 連線轉換為使用 ACM 憑證。
根據預設,工作群組資料庫接受連線,無論它是否使用 SSL。
若要建立只接受 SSL 連線的新工作群組,請使用 create-workgroup
命令並將 require_ssl
參數設定為 true
。若要使用下列範例,請將 yourNamespaceName
取代為您的命名空間名稱,並將 yourWorkgroupName
取代為您的工作群組名稱。
aws redshift-serverless create-workgroup \ --namespace-name
yourNamespaceName
\ --workgroup-nameyourWorkgroupName
\ --config-parameters parameterKey=require_ssl,parameterValue=true
若要將現有的工作群組更新為只接受 SSL 連線,請使用 update-workgroup
命令並將 require_ssl
參數設定為 true
。請注意,當您更新 require_ssl
參數時,Redshift Serverless 會重新啟動您的工作群組。若要使用下列範例,請將 yourWorkgroupName
取代為工作群組的名稱。
aws redshift-serverless update-workgroup \ --workgroup-name
yourWorkgroupName
\ --config-parameters parameterKey=require_ssl,parameterValue=true
Amazon Redshift 支援 Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 金鑰協議通訊協定。使用 ECDHE 時,用戶端和伺服器各有橢圓曲線公有-私有金鑰對,用於透過不安全通道建立共用秘密。您不需要在 Amazon Redshift 中設定任何項目來啟用 ECDHE。如果您從 SQL 用戶端工具連線,而此工具使用 ECDHE 來加密用戶端和伺服器之間的通訊,Amazon Redshift 會使用提供的密碼清單來建立適當的連線。如需詳細資訊,請參閱 Wikipedia 上的 Elliptic curve diffie—hellman
設定與 Amazon Redshift Serverless 相容的 FIPS SSL 連線
若要建立使用 FIPS 相容 SSL 連線的新工作群組,請使用 create-workgroup
命令並將 use_fips_ssl
參數設定為 true
。若要使用下列範例,請將 yourNamespaceName
取代為您的命名空間名稱,並將 yourWorkgroupName
取代為您的工作群組名稱。
aws redshift-serverless create-workgroup \ --namespace-name
yourNamespaceName
\ --workgroup-nameyourWorkgroupName
\ --config-parameters parameterKey=use_fips_ssl,parameterValue=true
若要更新現有工作群組以使用符合 FIPS 規範的 SSL 連線,請使用 update-workgroup
命令並將 use_fips_ssl
參數設定為 true
。請注意,當您更新 use_fips_ssl
參數時,Redshift Serverless 會重新啟動您的工作群組。若要使用下列範例,請將 yourWorkgroupName
取代為您的工作群組名稱。
aws redshift-serverless update-workgroup \ --workgroup-name
yourWorkgroupName
\ --config-parameters parameterKey=use_fips_ssl,parameterValue=true
如需將 Redshift Serverless 設定為使用 FIPS 相容連線的詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 use_fips_ssl。
從 Amazon Redshift 受管 VPC 端點連線至 Amazon Redshift Serverless
從其他 VPC 端點連線至 Amazon Redshift Serverless
如需為 Amazon Redshift Serverless 工作群組設定受管 VPC 端點的相關資訊,請參閱使用 Redshift 受管 VPC 端點。
從介面 VPC 端點連線至 Amazon Redshift Serverless (AWS PrivateLink)
如需從介面 VPC 端點 (AWS PrivateLink) 連線至 Amazon Redshift Serverless 的資訊,請參閱 介面 VPC 端點。
從其他帳戶或區域中的 Redshift VPC 端點連線至 Amazon Redshift Serverless
從跨 VPC 端點連線至 Amazon Redshift Serverless
Amazon Redshift Serverless 會佈建在 VPC 中。您可以授予對其他帳戶中 VPC 的存取權,以存取帳戶中的 Amazon Redshift Serverless。這類似於來自受管理 VPC 端點的連線,但在此情況下,連線起始於另一個帳戶中的資料庫用戶端。您可以執行幾項作業:
資料庫擁有者可以將包含 Amazon Redshift Serverless 的 VPC 的存取權授予相同區域中的其他帳戶。
資料庫擁有者可以撤銷 Amazon Redshift Serverless 存取權。
跨帳戶存取的主要優點是允許更輕鬆的資料庫協同作業。不必在包含資料庫的帳戶中佈建使用者即可存取資料庫,這樣可減少設定步驟並節省時間。
授予對其他帳戶中 VPC 的存取
若要授予存取權或變更允許的存取權,授予者需要具有下列權限的已指派權限政策:
redshift-serverless:PutResourcePolicy
redshift-serverless:GetResourcePolicy
redshift-serverless:DeleteResourcePolicy
ec2:CreateVpcEndpoint
ec2:ModifyVpcEndpoint
您可能需要 AWS 受管政策 AmazonRedshiftFullAccess 中指定的其他許可。如需詳細資訊,請參閱授予 Amazon Redshift Serverless 的權限。
承授者需要具有下列權限的已指派權限政策:
redshift-serverless:ListWorkgroups
redshift-serverless:CreateEndpointAccess
redshift-serverless:UpdateEndpointAccess
redshift-serverless:GetEndpointAccess
redshift-serverless:ListEndpointAccess
redshift-serverless:DeleteEndpointAccess
我們建議的最佳實務是,將許可政策附加到 IAM 角色,然後根據需要將其指派給使用者和群組。如需詳細資訊,請參閱 Amazon Redshift 中的身分和存取管理。
這是用來設定跨 VPC 存取權的範例資源政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CrossAccountCrossVPCAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"123456789012",
"234567890123"
]
},
"Action": [
"redshift-serverless:CreateEndpointAccess",
"redshift-serverless:UpdateEndpointAccess",
"redshift-serverless:DeleteEndpointAccess",
"redshift-serverless:GetEndpointAccess"
],
"Condition": {
"ArnLike": {
"redshift-serverless:AuthorizedVpc": [
"arn:aws:ec2:us-east-1:123456789012:vpc/*",
"arn:aws:ec2:us-east-1:234567890123:vpc/vpc-456",
"arn:aws:ec2:us-east-1:234567890123:vpc/vpc-987"
]
}
}
}
}
]
}
本節接下來的程序假設執行這些權限的使用者具有適當的指派權限,例如,透過具有列出權限的已指派 IAM 角色。這些程序還假設工作群組具有附加適當資源權限的 IAM 角色。
使用主控台授予其他帳戶的 VPC 存取權
此程序顯示當您是資料庫擁有者且想要授予存取權時,用於設定資料庫存取權的步驟。
從擁有者帳戶授予存取權
-
在 Amazon Redshift Serverless 工作群組的屬性中,在資料存取索引標籤上有一份名為已授予的帳戶清單。它會顯示授予工作群組存取權的帳戶和 VPC。找到清單,然後選擇授予存取權,將帳戶新增至清單。
-
出現一個視窗,您可以在其中新增承授者資訊。輸入 AWS 帳戶的 ID,其為您要授予存取權的帳戶的 12 位數 ID。
-
授予承授者的所有 VPC 或特定 VPC 的存取權。如果僅授予特定 VPC 的存取權,則可以透過輸入每個 VPC 並選擇新增 VPC來為這些 VPC 新增 ID。
-
完成後,選擇儲存變更。
當您儲存變更時,帳戶會出現在已授予的帳戶清單中。此項目會顯示帳戶 ID 和授予存取權的 VPC 清單。
資料庫擁有者也可以撤銷帳戶的存取權。您可以隨時撤消存取權。
撤銷帳戶存取權
-
您可以從授予的帳戶清單開始。首先,選取一或多個帳戶。
-
選擇撤銷存取權。
授予存取權之後,承授者的資料庫管理員可以檢查主控台,以判斷他們是否具有存取權。
使用主控台確認已授予存取其他帳戶的存取權
-
在 Amazon Redshift Serverless 工作群組屬性的資料存取索引標籤上,有一份名為授權的帳戶清單。它顯示可以從此工作組存取的帳戶。承授者無法使用工作群組的端點 URL 直接存取工作群組。若要存取工作組,身為承授者的您移至端點區段,然後選擇建立端點。
-
然後,身為承授者,您可以提供端點名稱和 VPC 來存取工作群組。
-
成功建立端點後,它會出現在端點區段中,並且有端點 URL。您可以使用此端點 URL 來存取工作群組。
使用 CLI 命令授予其他帳戶的存取權
授予存取權的帳戶必須先授予其他帳戶的存取權,才能使用連線put-resource-policy
。資料庫擁有者可以呼叫 put-resource-policy
以授權其他帳戶,建立與工作群組的連線。接著,承授者帳戶便可透過其允許的 VPC,使用 create-endpoint-authorization
以建立與工作群組的連線。
以下顯示的內容適用於 put-resource-policy
,您可以呼叫這些內容以允許存取特定帳戶和 VPC。
aws redshift-serverless put-resource-policy --resource-arn <value> --policy <value>
呼叫命令後,您可以呼叫 get-resource-policy
,並指定 resource-arn
以查看允許哪些帳戶和 VPC 存取資源。
承授者可以進行以下呼叫。它顯示有關授予存取權的資訊。具體而言,它會傳回一份包含授予存取權的 VPC 清單。
aws redshift-serverless list-workgroups --owner-account <value>
這樣做的目的是讓承授者從授予帳戶取得有關端點授權的資訊。owner-account
是共用帳戶。當您執行此項目時,它會傳回每個工作群組的 CrossAccountVpcs
,即為允許的 VPC 清單。以下內容展示了工作群組可用的所有屬性以做為參考:
Output: workgroup (Object) workgroupId String, workgroupArn String, workgroupName String, status: String, namespaceName: String, baseCapacity: Integer, (Not-applicable) enhancedVpcRouting: Boolean, configParameters: List, securityGroupIds: List, subnetIds: List, endpoint: String, publiclyAccessible: Boolean, creationDate: Timestamp, port: Integer, CrossAccountVpcs: List
注意
提醒您,叢集重新定位並非設定其他 Redshift 網路功能的先決條件。您也不需要將其開啟才能啟用下列功能:
從跨帳戶或跨區域 VPC 連線至 Redshift – 您可以從一個 AWS 虛擬私有雲端 (VPC) 連線到另一個包含 Redshift 資料庫的雲端,如本節所述。
設定自訂網域名稱 — 您可以為 Amazon Redshift 叢集或 Amazon Redshift Serverless 工作群組建立自訂網域名稱 (也稱為自訂 URL),以使端點名稱更加簡單易記。如需詳細資訊,請參閱使用自訂網域名稱來進行用戶端連線。
其他資源
設定網路流量設定的說明可在具有預設或自訂安全群組組態的公開存取中取得。這包括叢集可公開存取的使用案例。
設定網路流量設定的指示可在具有預設或自訂安全群組組態的私有可存取性中取得。這包括叢集無法供網際網路使用的使用案例。
如需 Amazon Redshift Serverless 安全連線的相關資訊 (包括授予許可、授權其他服務的存取權,以及建立 IAM 角色),請參閱 Amazon Redshift Serverless 中的身分和存取管理。