AlloyDB for PostgreSQL の IAM データベース認証

このページでは、Identity and Access Management(IAM)を使用して AlloyDB データベースへのアクセスを管理する方法について説明します。

IAM 認証のコンセプト

IAM 認証を使用する場合、AlloyDB インスタンスへのアクセス権はエンドユーザーに直接付与されません。代わりに、複数の権限をロールにまとめて、プリンシパルに付与します。詳細については、IAM の概要をご覧ください。

IAM データベース認証を使用してログインする管理者は、IAM ポリシーを使用してインスタンスへのアクセス制御を一元管理できます。

IAM ポリシーには、次のエンティティが含まれます。

  • プリンシパル。AlloyDB では、ユーザー アカウントまたはサービス アカウント(アプリケーション用)を使用できます。詳細については、プリンシパルをご覧ください。

  • ロール。IAM データベース認証では、プリンシパルに alloydb.instances.login 権限が必要です。この権限は、AlloyDB クライアント ロール(roles/alloydb.client)に含まれています。この権限を取得するには、ユーザー、サービス アカウント、またはグループを事前定義ロールか、この権限を含むカスタムロールにバインドします。詳細については、権限とロールをご覧ください。

  • リソース。プリンシパルがアクセスするリソースは AlloyDB インスタンスです。デフォルトでは、IAM ポリシー バインディングはプロジェクト レベルで適用されるため、プリンシパルはプロジェクト内のすべての AlloyDB インスタンスのロール権限を受け取ります。詳細については、リソースをご覧ください。

データベース認証オプションを比較する

次の表を使用して、ユースケースに最適な認証方法を判断してください。

機能 組み込みデータベース認証 IAM データベース認証(個別)
認証方法 パスワード 一時的な認証トークン
ネットワーク トラフィックの暗号化 SSL 不要 SSL 必要
ユーザー管理 手動 IAM で一元化

IAM データベースの自動認証と手動認証

AlloyDB には、IAM データベース認証に 2 つの方法(自動と手動)があります。

IAM データベースの自動認証

IAM データベースの自動認証を使用すると、Auth Proxy言語コネクタなどの中間の AlloyDB コネクタにアクセス トークンのリクエストと管理を任せることができます。

IAM データベースの自動認証では、アプリケーションは、クライアントからの接続リクエストで IAM データベースのユーザー名のみを渡す必要があります。コネクタは、クライアントに代わってパスワード属性のアクセス トークン情報を送信します。

IAM データベースの手動認証

IAM データベースの手動認証では、IAM プリンシパルは、クライアント接続リクエストでパスワード属性のアクセス トークンを明示的に渡す必要があります。プリンシパルはまず Google Cloud にログインし、IAM からのアクセス トークンを明示的にリクエストする必要があります。

IAM の条件と監査ログ

IAM Conditions を使用すると、さまざまな属性に基づいてロールを付与できます。たとえば、特定の日時にのみアクセスを許可することや、特定の名前の AlloyDB リソースにのみアクセス権を付与できます。

Cloud Audit Logs を使用すると、ログインなどのデータアクセスの記録を保持できます。デフォルトでは、Cloud Audit Logs は無効になっています。ログインをトラッキングするには、データアクセス監査ログを有効にする必要があります。

制限事項とベスト プラクティス

  • セキュリティ上、IAM データベース認証を使用したログインは SSL 接続でのみ使用できます。暗号化されていない接続は拒否されます。

  • 各インスタンスには分単位のログイン割り当てがあります。これには、成功したログインと失敗したログインの両方が含まれます。割り当てを超過すると、一時的にログインできなくなります。頻繁なログインを避け、承認済みネットワークを使用してログインを制限することをおすすめします。

次のステップ