システムポリシーではアクセス要件を満たせない場合、カスタムポリシーを作成して、RAM ユーザーが特定の PolarDB クラスター、操作、IP アドレス、または暗号化設定に対して正確な制御権限を得られるようにします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Alibaba Cloud アカウント (root ユーザー) をお持ちであること。未取得の場合は、まず アカウント登録 を行ってください。
RAM ポリシー内で PolarDB リソースを指定する方法について理解していること。詳細については、「RAM を用いたリソース権限付与」をご参照ください。
テーブル単位での権限のカスタマイズや特定の権限の付与には、Database Management Service (DMS) の権限管理機能をご利用ください。詳細については、「MySQL データベースにおけるユーザー権限の管理」をご参照ください。
ポリシーの構造
RAM ポリシーは、誰がどのようなリソースに対して、どのような操作を、どのような条件下で実行できるかを定義する JSON 形式のドキュメントです。各ポリシーには 1 つ以上の Statement オブジェクトが含まれ、それぞれに以下の要素があります。
| フィールド | 必須 | 説明 |
|---|---|---|
Action | はい | 許可または拒否する API オペレーション(例: polardb:CreateBackup) |
Resource | はい | この文が適用される PolarDB リソース — 特定のクラスター ARN、またはすべてのリソースを対象とするワイルドカード * |
Effect | はい | Allow または Deny |
Condition | いいえ | ソース IP アドレスや暗号化要件などの追加制約 |
ポリシーの構文に関する詳細については、「ポリシーの構造と構文」をご参照ください。
カスタムポリシーの作成およびアタッチ
以下のサンプルのいずれかをベースとしてカスタムポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。
作成したポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
ポリシーのサンプル
特定のクラスターへのアクセスを制限
複数の PolarDB クラスターを保有しており、RAM ユーザーがその一部(例:クラスター i-001 および i-002)のみを管理できるようにしたい場合に、このポリシーをご利用ください。
対象となる役割: 指定されたクラスターに対して完全制御権限が必要なクラスター管理者。
{
"Statement": [
{
"Action": "polardb:*",
"Effect": "Allow",
"Resource": [
"acs:polardb:*:*:*/i-001",
"acs:polardb:*:*:*/i-002"
]
},
{
"Action": "polardb:Describe*",
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}最初の文における `Resource`:
acs:polardb:*:*:*/i-001は、ARN の末尾セグメントであるクラスター ID を用いて特定のクラスターを対象とします。完全な管理アクセス権限は、i-001およびi-002のみに適用されます。Action: polardb:Describe*およびResource: "*":RAM ユーザーが PolarDB コンソール上で任意のクラスターを表示できるようにするために必要です。この設定がない場合、コンソール上のクラスターリストは空欄のままになります。
このポリシーにより権限付与された RAM ユーザーは、すべてのクラスターおよびリソースを閲覧できますが、管理可能なクラスターは ID が i-001 および i-002 の 2 つのみです。API オペレーション、コマンドラインインターフェイス (CLI)、またはソフトウェア開発キット (SDK) を使用して、これらのクラスターを引き続き管理できます。
特定の機能へのアクセスを制限
RAM ユーザーがすべての PolarDB クラスターに対して限定された一連の操作(例:バックアップ管理者やセキュリティ担当者など)のみを実行できるようにしたい場合に、このポリシーをご利用ください。
対象となる役割: バックアップ管理やホワイトリスト構成など、限定的な操作のみが必要なロールベースアクセス制御の適用シーン。
{
"Statement": [
{
"Action": [
"polardb:Describe*",
"polardb:CreateBackup",
"polardb:DeleteBackup",
"polardb:ModifyDBClusterAccessWhitelist"
],
"Resource": "*",
"Effect": "Allow"
}
],
"Version": "1"
}このポリシーにより、RAM ユーザーはアカウント内のすべての PolarDB クラスターについて、クラスター情報およびバックアップの照会、バックアップの作成および削除、およびホワイトリストの変更が可能になります。その他のすべての操作はデフォルトで拒否されます。
許可する操作を調整するには、Action リストを、具体的な API オペレーション名で置き換えまたは拡張してください。RAM 認可に対応する PolarDB の全 API オペレーションの一覧については、「RAM と連携可能なサービス」をご参照ください。
IP アドレスによるアクセス制限
RAM ユーザーが特定の IP アドレス(例:企業ネットワークやバスティオンホストなど)からのみ PolarDB クラスターにアクセスできるように制限したい場合に、このポリシーをご利用ください。
対象となる環境: クラスターへのアクセスを既知のネットワーク位置に限定する必要がある、セキュリティ要件の厳しい環境。
{
"Version": "1",
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"xxx.xxx.x.x"
]
}
}
}
]
}`acs:SourceIp`:
xxx.xxx.x.xを、許可する IP アドレスまたは CIDR ブロックに置き換えてください。効果:RAM ユーザーはアカウント内のすべての PolarDB クラスターを管理できますが、指定された IP アドレスからのみアクセス可能です。それ以外のアドレスからのリクエストはすべて拒否されます。
TDE ステータスの制限
クラスター作成時に RAM ユーザーの TDE ステータスを制限し、コンプライアンス要件に基づく「静止時暗号化」ポリシーを強制したい場合に、このポリシーをご利用ください。
対象となる役割: 必須暗号化基準の適用を監督するコンプライアンス担当者またはセキュリティチーム。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "polardb:*",
"Resource": "*",
"Condition": {
"Bool": {
"polardb:EncryptionRequired": [
"false"
]
}
}
}
]
}`Effect: Deny`:
polardb:EncryptionRequiredがfalseと評価される PolarDB のすべての操作をブロックします。TDE が有効でない限り、すべての操作が拒否されます。
次のステップ
RAM を用いたリソース権限付与 — PolarDB リソースの ARN フォーマットおよび、ポリシー内で特定のクラスター、リージョン、またはアカウントを対象とする方法についてご確認ください
RAM と連携可能なサービス — RAM 認可に対応する PolarDB の全 API オペレーションの一覧
ポリシーの構造と構文 — 全ポリシーフィールド、条件演算子、およびサポートされる値のリファレンス