IAM 認証を使用したデータベースアカウントの作成
IAM データベース認証では、作成するユーザーアカウントにデータベースのパスワードを割り当てる必要はありません。データベースアカウントにマッピングされている IAM
ユーザーを削除する場合、DROP USER
ステートメントでデータベースアカウントも削除する必要があります。
IAM 認証に使用されるユーザー名は、データベース内のユーザー名の大文字および小文字と一致する必要があります。
MySQL での IAM 認証の使用
MySQL では、認証は、IAM とシームレスに連携して IAM ユーザーを認証する AWS 提供のプラグインである AWSAuthenticationPlugin
によって処理されます。DB クラスターに接続し、次の例に示すように、CREATE USER
ステートメントを発行します。
CREATE USER jane_doe IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
IDENTIFIED WITH
句により、MySQL は AWSAuthenticationPlugin
を使用して、データベースアカウント (jane_doe
) を認証できます。AS 'RDS'
句は認証方法を示し、指定するデータベースアカウントは IAM ユーザーあるいはロールと同じ名前である必要があります。この例では、データベースアカウントと IAM
ユーザーあるいはロールの両方は jane_doe
という名前です。
次のメッセージが表示された場合、AWS が提供するプラグインが、現在の DB クラスターに使用できないことを意味します。
ERROR 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not
loaded
このエラーをトラブルシューティングするには、サポートされている設定を使用していること、および DB クラスターで IAM データベース認証を有効にしていることを確認します。詳細については、「IAM データベース認証の可用性」および「IAM データベース認証の有効化と無効化」を参照してください。
AWSAuthenticationPlugin
を使用してアカウントを作成したら、他のデータベースのアカウントと同様に管理します。たとえば、GRANT
および REVOKE
ステートメントでアカウント特権を変更したり、ALTER USER
ステートメントでさまざまなアカウント属性を変更したりできます。
PostgreSQL での IAM 認証の使用
PostgreSQL 用の IAM 認証を使用するには、DB クラスターに接続し、データベースユーザーを作成して、次の例に示すように、ユーザーに rds_iam
ロールを付与します。
CREATE USER db_userx; GRANT rds_iam TO db_userx;
指定したデータベースアカウントは、IAM ユーザーまたはロールと同じ名前にする必要があります。この例では、データベースアカウントと IAM ユーザーあるいはロールの両方にdb_userx
という名前つけられます。
PostgreSQL データベースユーザーは IAM または Kerberos 認証のいずれかを使用できますが、両方を使用することはできないため、このユーザーも rds_ad
ロールを持つことはできません。これは、ネストされたメンバーシップにも適用されます。詳細については、「
ステップ 7: Kerberos 認証の PostgreSQL ログインを作成する
」を参照してください。