本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 以進行連線
-
在命令列界面中,請使用以下命令取得 TGT。
kinit
user_name
-
使用下列
mysql
命令登入資料庫叢集的資料庫執行個體端點。mysql -h
DB_instance_endpoint
-P 3306 -uuser_name
-p注意
如果在資料庫執行個體上輪換 keytab,身分驗證便可能失敗。在此情況下,請重新執行
kinit
以取得新的 TGT。
直接連線
-
在命令列界面中,使用下列
mysql
命令登入資料庫叢集的資料庫執行個體端點。mysql -h
DB_instance_endpoint
-P 3306 -uuser_name
-p -
輸入 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 -uuser_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 | 錯誤、警告、資訊和偵錯訊息 |