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

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

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

AlloyDB は、PostgreSQL と同じロール、ユーザー、グループのコンセプトを共有しています。簡単な説明については、以下の説明をご覧ください。

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

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

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

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

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

  • 標準の PostgreSQL パスワード ベースの認証: 指定された認証情報を保存されたハッシュ化されたパスワードと比較して、ユーザー ID を検証します。サポートされているメソッドには、md5、scram-sha-256、password などがあります。
  • 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 データベースにログインしたり、他のオペレーションを実行したりすることはできません。

alloydbiamuser グループロール

alloydbiamuser グループ内のデータベース ユーザーは、標準の PostgreSQL パスワードベースの認証ではなく、IAM を使用して AlloyDB インスタンスで認証します。

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

次のステップ