使用身分驗證設定檔連線至 Amazon Redshift - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用身分驗證設定檔連線至 Amazon Redshift

如果您有許多 Amazon Redshift 連線,則可能難以管理所有連線的設定。每個 JDBC 或 ODBC 連線通常會使用特定的組態選項。透過使用身分驗證設定檔,您可以將連線選項儲存在一起。如此一來,使用者就可以選擇要用來連線的設定檔,而不必管理個別選項的設定。設定檔可以套用至各種案例和使用者類型。

建立驗證設定檔之後,使用者可以將 ready-to-use 設定檔新增至連接字串。如此一來,其便可以使用每個角色和使用案例的正確設定來連線至 Amazon Redshift。

如需 Amazon Redshift API 的資訊,請參閱CreateAuthentication設定檔

建立身分驗證設定檔

您可以 AWS CLI使用create-authentication-profile指令建立驗證設定檔。這會假設您有現有的 Amazon Redshift 叢集和現有的資料庫。您的憑證必須具有可連線至 Amazon Redshift 資料庫的許可,以及可擷取身分驗證設定檔的權限。您可以透過 JSON 字串的形式提供組態選項,也可以參考包含 JSON 字串的檔案。

create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>

以下範例會建立名為 ExampleProfileName 的設定檔。在這裡,您可以將定義叢集名稱和其他選項設定的金鑰和值新增為 JSON 字串。

create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

此命令會使用指定的 JSON 設定建立設定檔。系統會傳回以下內容,以指出您已建立設定檔。

{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }

建立身分驗證設定檔的限制和配額

每位客戶的配額為十 (10) 個身分驗證設定檔。

身分驗證設定檔可能會發生某些錯誤。例如,如果您使用現有名稱建立新的設定檔,或是您超過設定檔配額的話。如需詳細資訊,請參閱CreateAuthentication設定檔

您無法在身分驗證設定檔存放區中儲存 JDBC、ODBC 和 Python 連線字串的某些選項金鑰和值:

  • AccessKeyID

  • access_key_id

  • SecretAccessKey

  • secret_access_key_id

  • PWD

  • Password

  • password

您無法在設定檔存放區中儲存 JDBC 或 ODBC 連線字串的金鑰或值 AuthProfile。若為 Python 連線,您無法儲存 auth_profile

身份驗證設定檔存放在 Amazon DynamoDB 中,並由其管理。 AWS

使用身分驗證設定檔

在建立身分驗證設定檔後,便可以在 JDBC 2.0 版 AuthProfile 中將設定檔名稱納入為連線選項。使用此連線選項會擷取已儲存的設定。

jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>

以下是 JDBC URL 字串範例。

jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"

在 JDBC URL 中指定 AccessKeyIDSecretAccessKey,以及身分驗證設定檔名稱。

您也可以使用分號分隔符號來分隔組態選項,例如以下範例 (其包含記錄的選項)。

jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
注意

請勿將機密資訊新增至身分驗證設定檔。例如,請勿在身分驗證設定檔中儲存 AccessKeyIDSecretAccessKey 值。身分驗證設定檔存放區具有禁止儲存秘密金鑰的規則。如果您嘗試儲存與敏感資訊相關聯的金鑰和值,就會收到錯誤。

取得身分驗證設定檔

若要列出現有的身分驗證設定檔,請呼叫以下命令。

describe-authentication-profiles --authentication-profile-name <value: String>

以下範例示範所擷取的兩個設定檔。如果未指定設定檔名稱,則會傳回所有設定檔。

{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] }