使用 Kerberos 身分驗證連線至 Aurora MySQL - Amazon Aurora

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

使用 Kerberos 身分驗證連線至 Aurora MySQL

為避免發生錯誤,請在 Unix 平台上使用 8.0.26 或更高版本的 MySQL 用戶端,在 Windows 上則使用 8.0.27 或更高版本。

使用 Aurora MySQL Kerberos 登入,以連線至資料庫叢集

若要使用 Kerberos 身分驗證連線至 Aurora MySQL,您可以使用 步驟 6:建立使用 Kerberos 身分驗證的 Aurora MySQL 使用者 的指示所建立的資料庫使用者身分登入。

在命令提示字元中,連線至與 Aurora MySQL 資料庫叢集相關聯的其中一個端點。當系統提示您輸入密碼時,請輸入與該使用者名稱相關聯的 Kerberos 密碼。

當您透過 Kerberos 進行身分驗證時,如果票證授予票證 (TGT) 尚未存在,系統會產生一份 TGT。authentication_kerberos 外掛程式會使用 TGT 來取得服務票證,然後將其顯示給 Aurora MySQL 資料庫伺服器。

您可以在 Windows 或 Unix 上,透過 Kerberos 身分驗證,以 MySQL 用戶端連線至 Aurora MySQL。

您可以使用下列其中一種方法來連線:

  • 手動取得 TGT。在此情況下,您不需要向 MySQL 用戶端提供密碼。

  • 直接向 MySQL 用戶端提供 Active Directory 登入密碼。

在 Unix 平台上,MySQL 用戶端 8.0.26 和更新版本可支援用戶端外掛程式。

手動取得 TGT 以進行連線
  1. 在命令列界面中,請使用以下命令取得 TGT。

    kinit user_name
  2. 使用下列 mysql 命令登入資料庫叢集的資料庫執行個體端點。

    mysql -h DB_instance_endpoint -P 3306 -u user_name -p
    注意

    如果在資料庫執行個體上輪換 keytab,身分驗證便可能失敗。在此情況下,請重新執行 kinit 以取得新的 TGT。

直接連線
  1. 在命令列界面中,使用下列 mysql 命令登入資料庫叢集的資料庫執行個體端點。

    mysql -h DB_instance_endpoint -P 3306 -u user_name -p
  2. 輸入 Active Directory 使用者的密碼。

在 Windows 上,身分驗證通常會在登入時完成,因此您不需要手動取得 TGT 即可連線至 Aurora MySQL 資料庫叢集。資料庫使用者名稱的大小寫必須符合 Active Directory 中使用者的字元大小寫。例如,若 Active Directory 中的使用者顯示為 Admin,則資料庫使用者名稱必須為 Admin

在 Windows 上,MySQL 用戶端 8.0.27 和更新版本可支援用戶端外掛程式。

直接連線
  • 在命令列界面中,使用下列 mysql 命令登入資料庫叢集的資料庫執行個體端點。

    mysql -h DB_instance_endpoint -P 3306 -u user_name

使用 Aurora 全域資料庫進行 Kerberos 身分驗證

Aurora 全域資料庫可支援 Aurora MySQL 的 Kerberos 身分驗證。若要使用主要資料庫叢集的 Active Directory,來驗證次要資料庫叢集上的使用者,請將 Active Directory 複寫到次要 AWS 區域。您可以使用與主要叢集相同的網域 ID,在次要叢集上開啟 Kerberos 身分驗證。只有企業版的 Active Directory 支援 AWS Managed Microsoft AD 複寫。如需詳細資訊,請參閱《AWS Directory Service 管理指南》中的多區域複寫

從 RDS for MySQL 遷移至 Aurora MySQL

從啟用 Kerberos 身分驗證的 RDS for MySQL 遷移到 Aurora MySQL 之後,請修改使用 auth_pam 外掛程式建立的使用者,以使用 authentication_kerberos 外掛程式。例如:

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

防止票證快取

如果 MySQL 用戶端應用程式啟動時不存在有效 TGT,則應用程式可以取得且快取 TGT。若要防止快取 TGT,請在 /etc/krb5.conf 檔案中設定組態參數。

注意

此組態僅適用於執行 Unix 的用戶端主機,而非執行 Windows 的用戶端主機。

為了防止 TGT 快取
  • 請新增 [appdefaults] 區段至 /etc/krb5.conf,如下所示:

    [appdefaults] mysql = { destroy_tickets = true }

Kerberos 身分驗證的記錄

AUTHENTICATION_KERBEROS_CLIENT_LOG 環境變數會設定 Kerberos 身分驗證的記錄層級。您可以使用日誌進行用戶端偵錯。

允許值為 1 至 5。日誌訊息會寫入標準錯誤輸出。下表描述各個記錄層級。

Logging level (記錄層級) 描述
1 或未設定 沒有記錄
2 錯誤訊息
3 錯誤和警告訊息
4 錯誤、警告和資訊訊息
5 錯誤、警告、資訊和偵錯訊息