

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

# 使用 Amazon RDS 進行資料庫身分驗證
<a name="database-authentication"></a>

 Amazon RDS 支援驗證資料庫使用者的數種方式。

密碼、Kerberos 和 IAM 資料庫身分驗證會對資料庫使用不同的身分驗證方法。因此，特定使用者只能使用一種身分驗證方法登入資料庫。

對於 PostgreSQL，請僅針對特定資料庫的使用者使用下列其中一個角色設定：
+ 若要使用 IAM 資料庫身分驗證，請將 `rds_iam` 角色指派給使用者。
+ 若要使用 Kerberos 身分驗證，請將 `rds_ad` 角色指派給使用者。
+ 若要使用密碼身分驗證，請勿指派 `rds_iam` 或 `rds_ad` 角色給使用者。

不要同時將 `rds_iam` 和 `rds_ad` 角色指派給 PostgreSQL 資料庫的使用者，無論是直接或間接透過巢狀授權存取。如果 `rds_iam` 角色新增至主要使用者，則 IAM 身分驗證優先於密碼身分驗證，因此主要使用者必須以 IAM 使用者身分登入。

**重要**  
我們強烈建議您不要直接在您的應用程式中使用主要使用者。而是遵循最佳實務，使用以應用程式所需的最低權限建立的資料庫使用者。

**Topics**
+ [

## 密碼身分驗證
](#password-authentication)
+ [

## IAM 資料庫身分驗證
](#iam-database-authentication)
+ [

## Kerberos 身分驗證
](#kerberos-authentication)

## 密碼身分驗證
<a name="password-authentication"></a>

使用*密碼身分驗證*，您的資料庫會執行使用者帳戶的所有管理。您可以使用 SQL 陳述式 (例如 `CREATE USER`) 搭配資料庫引擎指定密碼所需的適當子句，來建立使用者。例如，在 MySQL 中，陳述式為 `CREATE USER` *name* `IDENTIFIED BY` *password*，而在 PostgreSQL 中，陳述式為 `CREATE USER` *name* `WITH PASSWORD` *password*。

透過密碼身分驗證，您的資料庫可控制並驗證使用者帳戶。如果資料庫引擎具有強大的密碼管理功能，它們可以增強安全性。當您擁有較小的使用者社群時，使用密碼身分驗證來管理資料庫身分驗證可能會更容易。由於在此情況下會產生純文字密碼，因此與 整合 AWS Secrets Manager 可以增強安全性。

如需有關將 Secrets Manager 與 Amazon RDS 搭配使用的詳細資訊，請參閱 《AWS Secrets Manager 使用者指南》**中的[建立基本秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)和[輪換支援 Amazon RDS 資料庫的秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-rds.html)。如需以程式設計方式擷取自訂應用程式中的密碼的相關資訊，請參閱 *AWS Secrets Manager 使用者指南*中的[擷取密碼值](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_retrieve-secret.html)。

## IAM 資料庫身分驗證
<a name="iam-database-authentication"></a>

您可以使用 AWS Identity and Access Management (IAM) 資料庫身分驗證來驗證資料庫執行個體。透過此身分驗證方法，您在連接至資料庫執行個體時就不需要使用密碼。而是改用身分驗證字符。

如需有關 IAM 資料庫身分驗證的詳細資訊，包括特定資料庫引擎可用性的相關資訊，請參閱[適用於 MariaDB、MySQL 和 PostgreSQL 的 IAM 資料庫身分驗證](UsingWithRDS.IAMDBAuth.md)。

## Kerberos 身分驗證
<a name="kerberos-authentication"></a>

 Amazon RDS 支援透過 Kerberos 和 Microsoft Active Directory 對資料庫使用者進行外部身分驗證。Kerberos 是網路身分驗證通訊協定，使用票證和對稱式金鑰加密技術，免除透過網路傳輸密碼的需要。Kerberos 已內建至 Active Directory，旨在驗證網路資源 (例如資料庫) 的使用者身分。

 Amazon RDS 對 Kerberos 和 Active Directory 的支援，提供了資料庫使用者的單一登入和集中式身分驗證優點。您可以在 Active Directory 中保留您的使用者登入資料。Active Directory 提供集中位置，可存放及管理多個資料庫執行個體的憑證。

若要使用自我管理 Active Directory 中的登入資料，您需要設定與加入資料庫執行個體之 Directory Service Microsoft Active Directory 的信任關係。

 RDS for PostgreSQL 和 RDS for MySQL 支援使用整個樹系身分驗證或選擇性身分驗證的單向和雙向樹系信任關係。

在某些情況下，您可以透過外部信任關係設定 Kerberos 身分驗證。這需要自我管理的 Active Directory 具有其他設定。這包括但不限於 [Kerberos 樹系搜尋順序](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/kfso-not-work-in-external-trust-event-is-17)。

Microsoft SQL Server 和 PostgreSQL 資料庫執行個體支援單向和雙向的樹系信任關係。Oracle 資料庫執行個體支援單向和雙向的外部和樹系信任關係。如需詳細資訊，請參閱《Directory Service 管理指南》**中的[建立信任關係的時機](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/setup_trust.html)。

如需使用特定資料庫引擎進行 Kerberos 身分驗證的相關資訊，請參閱下列內容：
+  [使用具有 RDS for SQL Server 的 AWS 受管 Active Directory](USER_SQLServerWinAuth.md) 
+  [對 Amazon RDS for MySQL 使用 Kerberos 身分驗證](mysql-kerberos.md) 
+  [為 Amazon RDS for Oracle 設定 Kerberos 身分驗證](oracle-kerberos.md) 
+  [搭配 Amazon RDS for PostgreSQL 使用 Kerberos 身分驗證](postgresql-kerberos.md) 
+  [使用 Amazon RDS for Db2 的 Kerberos 身分驗證](db2-kerberos.md) .

**注意**  
目前，MariaDB 資料庫執行個體不支援 Kerberos 身分驗證。