このページでは、AlloyDB for PostgreSQL でデータベース ユーザーを管理し、各データベース ユーザーに対して Identity and Access Management(IAM)認証を有効にする方法の概要を説明します。
データベース ユーザー管理の仕組み
AlloyDB は、PostgreSQL と同じロール、ユーザー、グループのコンセプトを共有しています。簡潔にまとめると、以下のようになります。
ロール: クラスタ全体のデータベース ユーザーとデータベース ユーザーのグループの両方を表す最上位の指定。ロールは、テーブルや関数などのデータベース オブジェクトに対するアクセス権を付与または制限します。
ユーザー:
LOGIN
属性が付与されたロール。ユーザーは、認証することで AlloyDB データベース クラスタにログインできます。グループ: 1 人以上のユーザーに付与されるロール。グループの目的は、複数のユーザーが持つ権限をまとめて管理することです。
データベース認証の仕組み
認証して AlloyDB データベース クラスタにログインする方法には、次の 2 種類があります。
- PostgreSQL の組み込みのパスワード ベース認証: ユーザーの ID を検証するために、AlloyDB は入力された認証情報と保存済みのハッシュされたパスワードを比較します。サポートされているメソッドには、
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 データベースにログインすることや、その他のオペレーションを実行することはできません。
alloydbagent
ユーザーロール
alloydbagent
ロールは、AlloyDB の内部システムロールです。このロールは AlloyDB サービスが管理するため、データベース アカウントに手動で付与することはできません。この管理により、データベースとその機能が正しく機能します。
alloydbreplica
ユーザーロール
alloydbreplica
ロールは、AlloyDB の内部システムロールです。このロールは AlloyDB サービスが管理するため、データベース アカウントに手動で付与することはできません。この管理により、データベースとその機能が正しく機能します。
alloydbiamuser
グループロール
alloydbiamuser
グループ内のデータベース ユーザーは、PostgreSQL の組み込みのパスワード ベース認証ではなく、IAM を使用して AlloyDB インスタンスに対する認証を行います。
AlloyDB では、GRANT
PostgreSQL コマンドなどの方法を使用してユーザーに alloydbiamuser
を付与することはできません。代わりに、AlloyDB 管理ツールを使用して、IAM ベースのデータベース ユーザーを作成および管理できます。詳細については、IAM 認証を管理するをご覧ください。
次のステップ
組み込み認証を使用して AlloyDB の PostgreSQL ロール、ユーザー、グループを管理する方法について学習する。
IAM 認証を管理する方法について学習する。