AlloyDB for PostgreSQL のデータベース ユーザー管理について

このページでは、AlloyDB for PostgreSQL でデータベース ユーザーを管理し、各データベース ユーザーに対して Identity and Access Management(IAM)認証を有効にする方法の概要を説明します。

データベース ユーザー管理の仕組み

AlloyDB は、PostgreSQL と同じロール、ユーザー、グループのコンセプトを共有しています。簡潔にまとめると、以下のようになります。

  • ロール: クラスタ全体のデータベース ユーザーとデータベース ユーザーのグループの両方を表す最上位の指定。ロールは、テーブルや関数などのデータベース オブジェクトに対するアクセス権を付与または制限します。

  • ユーザー: LOGIN 属性が付与されたロール。ユーザーは、認証することで AlloyDB データベース クラスタにログインできます。

  • グループ: 1 人以上のユーザーに付与されるロール。グループの目的は、複数のユーザーが持つ権限をまとめて管理することです。

データベース認証の仕組み

認証して AlloyDB データベース クラスタにログインする方法には、次の 2 種類があります。

  • PostgreSQL の組み込みのパスワード ベース認証: ユーザーの ID を検証するために、AlloyDB は入力された認証情報と保存済みのハッシュされたパスワードを比較します。サポートされているメソッドには、md5scram-sha-256password があります。
  • IAM 認証: データベース ユーザーが IAM を使用して認証できるようにします。これにより、セキュリティが強化され、他のGoogle Cloud サービス全体でアクセス制御が一元化されます。

事前定義ロール

PostgreSQL には、さまざまな権限を持つ事前定義ロールが用意されています。これらの事前定義ロールに加え、AlloyDB には他にも複数の事前定義されたユーザーロールとグループロールが用意されています。

次の表に、AlloyDB で提供されるロールとロール権限を示します。

ロール名 権限
alloydbsuperuser CREATEROLECREATEDBLOGIN
postgres CREATEROLECREATEDBLOGIN
alloydbimportexport CREATEROLECREATEDB
alloydbagent CREATEROLECREATEDB
alloydbreplica REPLICATION
alloydbiamuser デフォルトでは、このロールに権限はありません。

以降のサブセクションでは、これらのロールの用途について説明します。

alloydbsuperuser グループロール

alloydbsuperuser を使用すると、データベース システムを設定し、他のスーパーユーザー タスクを実行できます。このロールには次の権限があります。

  • スーパーユーザー権限が必要な拡張機能を作成する
  • イベント トリガーを作成する
  • レプリケーション ユーザーを作成する
  • レプリケーションのパブリケーションとサブスクリプションを作成する

AlloyDB はマネージド サービスであるため、ユーザーに PostgreSQL の superuser ロールを付与することはできません。代わりに、alloydbsuperuser ロールを付与することで、任意のデータベース ユーザーに AlloyDB のスーパーユーザー権限を付与できます。

postgres ユーザーロール

postgres ユーザーロールは alloydbsuperuser の一部です。AlloyDB クラスタを作成するときに、postgres にパスワードを割り当てます。その後は postgres を使用してシステムにログインし、データベースの作成やロールの追加などのタスクを実行します。

alloydbimportexport ユーザーロール

AlloyDB クラスタを作成すると、インポート / エクスポート オペレーションに必要な最小限の権限を持つ alloydbimportexport が作成されます。

これらのオペレーションを実行する独自のユーザーを作成することもできます。カスタムの alloydbimportexport ユーザーを作成しない場合、インポート オペレーションとエクスポート オペレーションにはデフォルトの alloydbimportexport ユーザーが使用されます。

alloydbimportexport はシステム ユーザーです。そのため、alloydbimportexport ユーザーを直接使用して PostgreSQL データベースにログインすることや、その他のオペレーションを実行することはできません。

alloydbagent ユーザーロール

alloydbagent ロールは、AlloyDB の内部システムロールです。このロールは AlloyDB サービスが管理するため、データベース アカウントに手動で付与することはできません。この管理により、データベースとその機能が正しく機能します。

alloydbreplica ユーザーロール

alloydbreplica ロールは、AlloyDB の内部システムロールです。このロールは AlloyDB サービスが管理するため、データベース アカウントに手動で付与することはできません。この管理により、データベースとその機能が正しく機能します。

alloydbiamuser グループロール

alloydbiamuser グループ内のデータベース ユーザーは、PostgreSQL の組み込みのパスワード ベース認証ではなく、IAM を使用して AlloyDB インスタンスに対する認証を行います。

AlloyDB では、GRANT PostgreSQL コマンドなどの方法を使用してユーザーに alloydbiamuser を付与することはできません。代わりに、AlloyDB 管理ツールを使用して、IAM ベースのデータベース ユーザーを作成および管理できます。詳細については、IAM 認証を管理するをご覧ください。

次のステップ