Amazon RDS でのデータベース認証
Amazon RDS は、データベースユーザを認証するいくつかの方法をサポートしています。
パスワード、Kerberos、および IAM データベース認証では、データベースに対する認証にはさまざまな方法が使用されます。したがって、特定のユーザーは、1 つの認証方法のみを使用してデータベースにログインできます。
PostgreSQL の場合は、特定のデータベースのユーザーに対して、次のロール設定の 1 つだけを使用します。
-
IAM データベース認証を使用するには、
rds_iam
ロールをユーザーに割り当てます。 -
Kerberos 認証を使用するには、
rds_ad
ロールをユーザーに割り当てます。 -
パスワード認証を使用するには、
rds_iam
またはrds_ad
ロールをユーザーに割り当てないでください。
ネストされた許可アクセスによって直接的または間接的に PostgreSQL データベースのユーザーに rds_iam
ロールと rds_ad
ロールを両方を割り当てないでください。rds_iam
ロールがマスターユーザーに追加されると、IAM 認証はパスワード認証よりも優先されるため、マスターユーザーは IAM ユーザーとしてログインする必要があります。
重要
アプリケーションではマスターユーザーを直接使用しないことを強くお勧めします。代わりに、アプリケーションに必要な最小の特権で作成されたデータベースユーザーを使用するというベストプラクティスに従ってください。
パスワード認証
パスワード認証を使用すると、データベースがユーザーアカウントのすべての管理を行います。DB エンジンがパスワードを指定するのに必要な正しい句を使用して、CREATE USER
などの SQL 文でユーザーを作成します。例えば、MySQL の文は CREATE USER
名前
IDENTIFIED BY
パスワード
となりますが、PostgreSQLでは CREATE USER
名前
WITH PASSWORD
パスワード
となります。
パスワード認証を使用すると、データベースがユーザーアカウントを制御および認証します。DB エンジンに強力なパスワード管理機能がある場合は、セキュリティを強化できます。ユーザーコミュニティが小規模である場合は、パスワード認証を使用すると、データベース認証が管理しやすくなります。この場合、クリアテキストパスワードが生成されるため、AWS Secrets Manager との統合によってセキュリティが強化されます。
Amazon RDS での Secrets Manager の使用については、AWS Secrets Manager ユーザーガイド の「基本シークレットの作成」と「サポートされている Amazon RDS データベースのシークレットのローテーション」を参照してください。カスタムアプリケーションにおいてシークレットをプログラムで取得する方法については、AWS Secrets Manager ユーザーガイドの「シークレット値の取得」を参照してください。
IAM データベース認証
AWS Identity and Access Management (IAM) データベース認証を使用して、DB インスタンスを認証できます。IAM データベース認証には、MySQL および PostgreSQL を使用します。この認証方法では、DB インスタンスに接続するときにパスワードを使用する必要はありません。代わりに、認証トークンを使用します。
特定の DB エンジンの可用性など、IAM データベース認証の詳細については、「MariaDB、MySQL、および PostgreSQL の IAM データベース認証」を参照してください。
Kerberos 認証
Amazon RDS で、Kerberos と Microsoft Active Directory を使用した、データベースユーザーの外部認証がサポートされるようになりました。Kerberos は、ネットワーク経由でパスワードを送信する必要をなくすためにチケットと対称キー暗号化を使用するネットワーク認証プロトコルです。Kerberos は Active Directory に組み込まれており、データベースなどのネットワークリソースに対するユーザー認証を行えるように設計されています。
Amazon RDS での Kerberos と Active Directory のサポートにより、データベースユーザーのシングルサインオンおよび一元化認証という利点が得られます。ユーザー資格情報を Active Directory に保持できます。Active Directory には、複数の DB インスタンスの資格情報を保存し、管理する一元的な場所が用意されています。
データベースユーザーが DB インスタンスに対して認証できるようにするには、2 つの方法があります。AWS Directory Service for Microsoft Active Directory またはオンプレミスの Active Directory に格納されている資格情報を使用できます。
Microsoft SQL Server および PostgreSQL DB インスタンスは、一方向および双方向のフォレスト信頼関係をサポートしています。Oracle DB インスタンスは、一方向と双方向の外部およびフォレストの信頼関係をサポートしています。詳細については、AWS Directory Service 管理ガイドの「信頼関係を作成する場合」を参照してください。
特定の DB エンジンを使用した Kerberos 認証については、以下を参照してください。
注記
現在、Kerberos 認証は MariaDB DB インスタンスではサポートされていません。