このページでは、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 認証を管理する方法について学習する。