このページでは、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 |
CREATEROLE 、CREATEDB 、LOGIN 。 |
postgres |
CREATEROLE 、CREATEDB 、LOGIN 。 |
alloydbimportexport |
CREATEROLE と CREATEDB 。 |
alloydbagent |
CREATEROLE と CREATEDB 。 |
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 認証を管理するをご覧ください。
次のステップ
標準認証を使用して AlloyDB の PostgreSQL のロール、ユーザー、グループを管理する方法を学習します。
IAM 認証を管理する方法を学習する。