Aurora DSQL の認証および認可
Aurora DSQL はクラスター認可に IAM ロールとポリシーを使用します。データベース認可のために、IAM ロールを PostgreSQL データベースロール
IAM を使用したクラスターの管理
クラスターを管理するには、認証と認可に IAM を使用します。
- IAM 認証
-
Aurora DSQL クラスターを管理するときに IAM ID を認証するには、IAM を使用する必要があります。AWS Management Console、AWS CLI、または AWS SDK を使用して認証を提供できます。
- IAM 認可
-
Aurora DSQL クラスターを管理するには、Aurora DSQL の IAM アクションを使用して認可を付与します。例えば、クラスターを記述するには、次のポリシーアクションの例のように、IAM ID に IAM アクション
dsql:GetClusterのアクセス許可があることを確認します。{ "Effect": "Allow", "Action": "dsql:GetCluster", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" }詳細については、「IAM ポリシーアクションを使用したクラスターの管理」を参照してください。
IAM を使用したクラスターへの接続
クラスターに接続するには、認証と認可に IAM を使用します。
- IAM 認証
-
クラスターに接続する認可を持つ IAM ID を使用して一時認証トークンを生成します。詳細についてはAmazon Aurora DSQL での認証トークンの生成を参照してください。
- IAM 認可
-
クラスターのエンドポイントへの接続を確立するために使用する IAM ID に、次の IAM ポリシーアクションを付与します。
-
dsql:DbConnectAdminロールを使用している場合は、adminを使用します。Aurora DSQL は、このロールを自動的に作成および管理します。次のサンプル IAM ポリシーアクションは、adminがmy-clusterに接続することを許可します。{ "Effect": "Allow", "Action": "dsql:DbConnectAdmin", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" } -
カスタムデータベースロールを使用している場合は、
dsql:DbConnectを使用します。データベースで SQL コマンドを使用して、このロールを作成および管理します。次のサンプル IAM ポリシーアクションは、カスタムデータベースロールがmy-clusterに最大 1 時間接続することを許可します。{ "Effect": "Allow", "Action": "dsql:DbConnect", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" }
接続を確立すると、ロールは接続に対して最大 1 時間承認されます。
-
PostgreSQL データベースロールと IAM ロールを使用したデータベースの操作
PostgreSQL は、ロールの概念を使用してデータベースアクセス許可を管理します。ロールは、ロールの設定方法に応じて、データベースユーザーまたはデータベースユーザーのグループと考えることができます。SQL コマンドを使用して PostgreSQL ロールを作成します。データベースレベルの認可を管理するには、PostgreSQL データベースロールに PostgreSQL アクセス許可を付与します。
Aurora DSQL は、admin ロールとカスタムロールの 2 種類のデータベースロールをサポートしています。Aurora DSQL は、Aurora DSQL クラスターで事前定義された admin ロールを自動的に作成します。admin ロールは変更できません。admin としてデータベースに接続すると、SQL を発行して、IAM ロールに関連付ける新しいデータベースレベルのロールを作成できます。IAM ロールがデータベースに接続できるようにするには、カスタムデータベースロールを IAM ロールに関連付けます。
- 認証
-
adminロールを使用してクラスターに接続します。データベースを接続したら、次の例のように、AWS IAM GRANTコマンドを使用して、カスタムデータベースロールをクラスターへの接続が承認された IAM ID に関連付けます。AWS IAM GRANTcustom-db-roleTO 'arn:aws:iam::account-id:role/iam-role-name';詳細についてはクラスターへの接続をデータベースロールに許可するを参照してください。
- Authorization
-
adminロールを使用してクラスターに接続します。SQL コマンドを実行してカスタムデータベースロールを設定し、アクセス許可を付与します。詳細については、「PostgreSQL ドキュメント」の「PostgreSQL データベースロール」および「PostgreSQL の権限 」を参照してください。
Aurora DSQL での IAM ポリシーアクションの使用
使用する IAM ポリシーアクションは、クラスターへの接続に使用するロールが、admin またはカスタムデータベースロールのいずれかによって異なります。このポリシーは、このロールに必要な IAM アクションにも依存します。
IAM ポリシーアクションを使用したクラスターへの接続
デフォルトのデータベースロール admin を使用してクラスターに接続する場合は、認可付きの IAM ID を使用して、次の IAM ポリシーアクションを実行します。
"dsql:DbConnectAdmin"
カスタムデータベースロールを使用してクラスターに接続するときは、まず IAM ロールをデータベースロールに関連付けます。クラスターへの接続に使用する IAM ID には、次の IAM ポリシーアクションを実行する権限が必要です。
"dsql:DbConnect"
カスタムデータベースロールの詳細については、「データベースロールと IAM 認証の使用」を参照してください。
IAM ポリシーアクションを使用したクラスターの管理
Aurora DSQL クラスターを管理するときは、ロールが実行する必要があるアクションに対してのみポリシーアクションを指定します。例えば、ロールがクラスター情報のみを取得する必要がある場合は、次のサンプルポリシーのように、ロールのアクセス許可を GetCluster および ListClusters アクセス許可のみに制限できます。
次のポリシー例は、クラスターを管理するために使用可能なすべての IAM ポリシーアクションを示しています。
IAM と PostgreSQL を使用した認可の取り消し
データベースレベルのロールにアクセスするための IAM ロールのアクセス許可を取り消すことができます。
- クラスターへの接続に関する管理者権限の取り消し
-
adminロールを使用してクラスターに接続する認可を取り消すには、IAM アイデンティティのdsql:DbConnectAdminへのアクセスを取り消します。IAM ポリシーを編集するか、アイデンティティからポリシーをデタッチします。IAM ID から接続認可を取り消すと、Aurora DSQL はその IAM ID からのすべての新しい接続試行を拒否します。IAM ID を使用するアクティブな接続は、接続の期間中は認可されたままになる場合があります。接続の期間の詳細については、「クォータと制限」を参照してください。
- クラスターへの接続に関するカスタムロール認可の取り消し
-
admin以外のデータベースロールへのアクセスを取り消すには、IAM アイデンティティのdsql:DbConnectへのアクセスを取り消します。IAM ポリシーを編集するか、アイデンティティからポリシーをデタッチします。データベースの
AWS IAM REVOKEコマンドを使用して、データベースロールと IAM の関連付けを削除することもできます。データベースロールからのアクセスの取り消しの詳細については、「IAM ロールからのデータベース認可の取り消し」を参照してください。
事前定義された admin データベースロールのアクセス許可を管理することはできません。カスタムデータベースロールのアクセス許可を管理する方法については、「PostgreSQL の権限