

# IAM 認証を使用したデータベースアカウントの作成
<a name="UsingWithRDS.IAMDBAuth.DBAccounts"></a>

IAM データベース認証では、作成するユーザーアカウントにデータベースのパスワードを割り当てる必要はありません。データベースアカウントにマッピングされているユーザーを削除した場合は、`DROP USER` ステートメントでデータベースアカウントも削除する必要があります。

**注記**  
IAM 認証に使用されるユーザー名は、データベース内のユーザー名の大文字および小文字と一致する必要があります。

**Topics**
+ [

## MariaDB および MySQL での IAM 認証の使用
](#UsingWithRDS.IAMDBAuth.DBAccounts.MySQL)
+ [

## PostgreSQL での IAM 認証の使用
](#UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL)

## MariaDB および MySQL での IAM 認証の使用
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.MySQL"></a>

MariaDB および MySQL では、認証は、`AWSAuthenticationPlugin` (IAM とシームレスに連携してユーザーを認証する AWS 提供のプラグイン) によって処理されます。DB インスタンスに、マスターユーザーまたはユーザーを作成して権限を付与できる別のユーザーとして接続します。接続後、次の例に示すように、`CREATE USER` ステートメントを発行します。

```
CREATE USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS'; 
```

`IDENTIFIED WITH` 句により、MariaDB および MySQL は `AWSAuthenticationPlugin` を使用して、データベースアカウント (`jane_doe`) を認証できます。`AS 'RDS'` 句は、認証方式を参照します。指定したデータベースユーザー名は、IAM データベースアクセスの IAM ポリシー内のリソースと同じであることを確認します。詳細については、「[IAM データベースアクセス用の IAM ポリシーの作成と使用](UsingWithRDS.IAMDBAuth.IAMPolicy.md)」を参照してください。

**注記**  
次のメッセージが表示された場合、AWS が提供するプラグインが、現在の DB インスタンスに使用できないことを意味します。  
`ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded`  
このエラーをトラブルシューティングするには、サポートされている設定を使用していること、および DB インスタンスで IAM データベース認証を有効にしていることを確認します。詳細については、「[利用可能なリージョンとバージョン](UsingWithRDS.IAMDBAuth.md#UsingWithRDS.IAMDBAuth.Availability)」および「[IAM データベース認証の有効化と無効化](UsingWithRDS.IAMDBAuth.Enabling.md)」を参照してください。

`AWSAuthenticationPlugin` を使用してアカウントを作成したら、他のデータベースのアカウントと同様に管理します。例えば、`GRANT` および `REVOKE` ステートメントでアカウント特権を変更したり、`ALTER USER` ステートメントでさまざまなアカウント属性を変更したりできます。

IAM を使用する場合、データベースネットワークトラフィックは SSL/TLS を使用して暗号化されます。SSL 接続を許可するには、以下のコマンドでユーザーアカウントを変更します。

```
ALTER USER 'jane_doe'@'%' REQUIRE SSL;     
```

 

## PostgreSQL での IAM 認証の使用
<a name="UsingWithRDS.IAMDBAuth.DBAccounts.PostgreSQL"></a>

 PostgreSQL で IAM 認証を使用するには、マスターユーザーまたはユーザーを作成して権限を付与できる別のユーザーとして DB インスタンスに接続します。接続後、データベースユーザーを作成して、次の例に示すように、ユーザーに `rds_iam` ロールを付与します。

```
CREATE USER db_userx; 
GRANT rds_iam TO db_userx;
```

指定したデータベースユーザー名は、IAM データベースアクセスの IAM ポリシー内のリソースと同じであることを確認します。詳細については、「[IAM データベースアクセス用の IAM ポリシーの作成と使用](UsingWithRDS.IAMDBAuth.IAMPolicy.md)」を参照してください。IAM 認証を使用するには、`rds_iam` ロールを付与する必要があります。ロールのネストされたメンバーシップまたは間接的な付与を使用することもできます。