從命令列使用 IAM 身份驗證連接到您的資料庫叢集: AWS CLI 和 mysql 用戶端 - Amazon Aurora

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

從命令列使用 IAM 身份驗證連接到您的資料庫叢集: AWS CLI 和 mysql 用戶端

您可以使用 AWS CLI 和命令列工具從命mysql令列連線到 Aurora 資料庫叢集,如下所述。

必要條件

以下是使用 IAM 身分驗證連線至資料庫叢集的先決條件:

注意

有關使用 SQL Workbench/J 與 IAM 身分驗證連接到您的資料庫的資訊,請參閱部落格文章 使用 IAM 身分驗證將 SQL Workbench/J 連線至 Aurora MySQL 或 Amazon RDS for MySQL

產生 IAM 身分驗證字符

以下範例顯示如何使用 AWS CLI來取得已簽署的身分驗證字符。

aws rds generate-db-auth-token \ --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \ --port 3306 \ --region us-west-2 \ --username jane_doe

範例中的參數如下:

  • --hostname – 您想要存取之資料庫叢集的主機名稱

  • --port – 用於連線資料庫叢集的連接埠號碼

  • --region— 執行資料庫叢集的 AWS 區域

  • --username – 您想要存取的資料庫帳戶

字符開頭的前幾個字元看起來如下所示。

rdsmysql.123456789012.us-west-2.rds.amazonaws.com:3306/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
注意

您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。

連接至資料庫叢集

連線的一般格式如下所示。

mysql --host=hostName --port=portNumber --ssl-ca=full_path_to_ssl_certificate --enable-cleartext-plugin --user=userName --password=authToken

參數如下:

  • --host – 您想要存取之資料庫叢集的主機名稱

  • --port – 用於連線資料庫叢集的連接埠號碼

  • --ssl-ca – 包含公有金鑰之 SSL 憑證檔案的完整路徑

    如需詳細資訊,請參閱 將 TLS 與 Aurora MySQL 資料庫叢集搭配使用

    若要下載 SSL 憑證,請參閱使用 SSL/TLS 加密資料庫叢集叢集的連線

  • --enable-cleartext-plugin – 指定 AWSAuthenticationPlugin 必須用於此連線的值

    如果您使用的是 MariaDB 用戶端,該 --enable-cleartext-plugin 選項不是必需的。

  • --user – 您想要存取的資料庫帳戶

  • --password – 已簽署的 IAM 身分驗證字符

身分驗證字符由數百個字元組成。在命令列上可能會顯得雜亂。此問題的一個解決方法是將字符儲存到環境變數,然後在連接時使用該變數。以下範例顯示此解決方法的一種型態。在範例中,/sample_dir/ 是包含公有金鑰之 SSL 憑證檔案的完整路徑。

RDSHOST="mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN

使用 AWSAuthenticationPlugin 來連接時會以 SSL 保護連線。若要確認是否如此,請在 mysql> 命令提示中輸入下列命令。

show status like 'Ssl%';

輸出中的以下幾行顯示更多詳細資訊。

+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+

如果要透過 Proxy 連線到資料庫叢集,請參閱 使用 IAM 身分驗證連線到代理