Resource Access Management (RAM) は、ARN ベースの権限付与、リソースグループベースの権限付与、タグベースの権限付与など、詳細な権限付与のための複数のメソッドを提供します。このトピックでは、これらのメソッドを使用して、特定の ApsaraDB RDS インスタンスに対する読み取り専用権限を RAM ユーザーに付与する方法の例を示します。
前提条件
RAM ユーザーが作成されていること。詳細については、「RAM ユーザーの作成」をご参照ください。
権限付与メソッドの選択方法
ARN ベースの権限付与
特徴: 特定の ApsaraDB RDS インスタンスに対して、高精度で読み取り専用権限を付与できます。
シナリオ: 単一または少数の特定の ApsaraDB RDS インスタンスに対する詳細な権限コントロールに適しています。
例: 開発環境内の特定のデータベースインスタンス。
リソースグループベースの権限付与
特徴: 複数の ApsaraDB RDS インスタンスをグループ化できます。1 回の操作で、リソースグループ内の複数の ApsaraDB RDS インスタンスに同じ権限を付与できます。
シナリオ: 類似の機能を持つ ApsaraDB RDS インスタンスのグループにバッチで権限を付与するのに適しています。
例: 複数の ApsaraDB RDS インスタンスが異なるリージョンまたはプロジェクトにあるが、同じセキュリティポリシーを必要とする場合、これらのインスタンスをリソースグループに追加できます。その後、そのグループ内のすべてのインスタンスに読み取り専用権限を付与できます。
タグベースの権限付与
特徴: タグのキーと値のペアに基づいて動的に権限を付与できます。
シナリオ: タグに基づいて ApsaraDB RDS インスタンスの権限を柔軟に管理するのに適しています。このメソッドは、ビジネスプロパティやその他のメタデータに基づいて権限をコントロールするのに最適です。
例:
env=prod、env=test、project=financeなど、異なるタグを持つ複数の ApsaraDB RDS インスタンスがあるとします。タグベースの権限付与ルールを使用して、特定のユーザーが特定のタグを持つ ApsaraDB RDS インスタンスにのみアクセスできるように許可できます。インスタンスごとに権限を 1 つずつ構成する必要はありません。
手順
以降の操作は、Alibaba Cloud アカウントを使用して実行してください。
方法 1: ARN ベースの権限付与
ARN ベースの権限付与では、アクセスポリシーで Alibaba Cloud リソースネーム (ARN) を使用して、権限を付与するリソースを指定します。これにより、特定のリソースに対する正確なアクセスの制御が可能になります。アクセスポリシーの基本要素の詳細については、「アクセスポリシーの基本要素」をご参照ください。
アクセスポリシーを作成します。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[権限管理] > [ポリシー] を選択します。
[ポリシーの作成] をクリックします。
[ビジュアルエディター] タブまたは [スクリプトエディター] タブをクリックします。
ビジュアルエディター
[エフェクト] を [許可] に、[サービス] を [ApsaraDB RDS] に設定します。
[アクション] で、[読み取り] の下にある Describe 関連の権限を選択します。Describe を検索して、関連するすべての権限を選択できます。
重要選択する権限が多すぎてポリシードキュメントが長さの制限を超えた場合は、して、制限の引き上げを依頼できます。
[リソース] で、[指定されたリソース] を選択します。ARN のフォーマットは
acs:rds:{#regionId}:{#accountId}:dbinstance/{#dbinstanceId}です。この ARN は、権限を付与するインスタンスとして [リソース] を定義します。[条件] フィールドは空のままにします。[ステートメントの追加] をクリックします。[エフェクト] を [許可] に、[サービス] を [ApsaraDB RDS] に設定します。
[アクション] を [rds:DescribeDBInstances] に設定します。[リソース] を [すべてのリソース] に設定します。[条件] フィールドは空のままにします。
スクリプトエディター
スクリプトエディターで、次の内容を入力します。
{ "Statement": [ { "Effect": "Allow", "Action": "rds:Describe*", "Resource": "acs:rds:*:*:dbinstance/インスタンス ID" }, { "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ], "Version": "1" }[OK] をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名] と [メモ] を入力します。ポリシーの内容を確認し、再度 [OK] をクリックします。
カスタムポリシーを RAM ユーザーにアタッチします。
左側のナビゲーションウィンドウで、[ID 管理] > [ユーザー] を選択します。
ターゲットユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。
[権限付与スコープ] で、この例のリソースグループを選択します。[ポリシーの選択] セクションで、[カスタムポリシー] をクリックします。次に、作成したポリシーを検索して選択します。
[権限付与の確認] をクリックします。
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
ApsaraDB RDS インスタンスリストに移動します。上部のナビゲーションバーでリージョンを選択して、インスタンスリストを表示します。
権限が付与されたインスタンスをクリックして、その詳細を表示します。
説明この権限付与メソッドでは、RAM ユーザーはインスタンスリスト内のすべてのインスタンスを見ることができますが、権限が付与されたインスタンスの詳細のみを表示できます。ユーザーが他の権限のないインスタンスを表示しようとすると、「権限が不十分です」というメッセージが表示されます。
これで構成は完了です。指定した ApsaraDB RDS インスタンスに対する読み取り専用権限を RAM ユーザーに付与しました。必要に応じて、RAM ユーザーに他の権限を付与することもできます。
方法 2: リソースグループベースの権限付与
リソースグループベースの権限付与では、権限を付与するリソースを同じリソースグループに配置します。次に、RAM ユーザーに権限を付与するときに、そのリソースグループを指定します。これにより、グループ内のすべてのリソースに対して正確な権限付与が可能になります。
リソースグループを作成します。
Resource Management コンソールにログインします。左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。
[リソースグループの作成] をクリックします。[リソースグループ ID] と [リソースグループ名] を設定し、[確認] をクリックします。
インスタンスを新しいリソースグループに転送します。
現在のリソースグループでターゲットインスタンスを見つけます。たとえば、ターゲットインスタンスが [デフォルトリソースグループ] にある場合、そのグループの [アクション] 列にある [リソースの管理] をクリックします。
インスタンス ID でターゲットインスタンスを検索します。インスタンスを選択し、[リソースグループの転送] をクリックします。

[リソースグループの転送] ウィンドウで、ステップ 1 で作成したリソースグループを選択し、[確認] をクリックします。
成功ウィンドウで、[確認] をクリックします。
新しいリソースグループでターゲットインスタンスが表示されれば、転送は成功です。
アクセスポリシーを作成します。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[権限管理] > [ポリシー] を選択します。
[ポリシーの作成] をクリックします。
[ビジュアルエディター] タブまたは [スクリプトエディター] タブをクリックします。
ビジュアルエディター
[エフェクト] を [許可] に、[サービス] を [ApsaraDB RDS] に設定します。
[アクション] で、[読み取り] の下にある Describe 関連の権限を選択します。Describe を検索して、関連するすべての権限を選択できます。
重要選択する権限が多すぎてポリシードキュメントが長さの制限を超えた場合は、して、制限の引き上げを依頼できます。
[リソース] を [すべてのリソース] に設定します。[条件] フィールドは空のままにします。
スクリプトエディター
スクリプトエディターで、次の内容を入力します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*" ], "Resource": "*" } ] }[OK] をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名] と [メモ] を入力します。ポリシーの内容を確認し、再度 [OK] をクリックします。
カスタムポリシーを RAM ユーザーにアタッチします。
左側のナビゲーションウィンドウで、[ID 管理] > [ユーザー] を選択します。
ターゲットユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。
[権限付与スコープ] で、作成したリソースグループを選択します。[ポリシーの選択] セクションで、[カスタムポリシー] をクリックします。作成したポリシーを検索して選択します。
[権限付与の確認] をクリックします。
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
ApsaraDB RDS インスタンスリストに移動し、上部のナビゲーションバーでリージョンを選択します。
次の図の ① で示されているように、ステップ 1 で作成したリソースグループを選択して、ターゲットインスタンスを表示します。

これで構成は完了です。指定した ApsaraDB RDS インスタンスに対する読み取り専用権限を RAM ユーザーに付与しました。必要に応じて、RAM ユーザーに他の権限を付与することもできます。
方法 3: タグベースの権限付与
タグベースの権限付与では、権限を付与するリソースに同じタグをアタッチします。アクセスポリシーを作成すると、そのポリシーは特定のタグを持つリソースにのみ適用されます。これにより、タグを共有するすべてのリソースに対して正確な権限付与が可能になります。
ApsaraDB RDS インスタンスにカスタムタグをアタッチします。
ApsaraDB RDS インスタンスリストに移動します。リージョンを選択し、ターゲットインスタンスを見つけます。
[タグ] 列で、
アイコンをクリックし、[編集] をクリックします。
タグキーとタグ値を設定し、[確認] をクリックします。
この例では、タグキーは
test-ramに、タグ値はrds-mysqlに設定されています。タグを構成するときは、意味のあるキーと値を使用してください。次の図に示すように、[タグ] 列にタグが表示されれば、カスタムタグは正常にアタッチされています。

アクセスポリシーを作成します。
RAM コンソールにログインします。
左側のナビゲーションウィンドウで、[権限管理] > [ポリシー] を選択します。
[ポリシーの作成] をクリックします。
[ビジュアルエディター] タブまたは [スクリプトエディター] タブをクリックします。
ビジュアルエディター
[エフェクト] を [許可] に、[サービス] を [ApsaraDB RDS] に設定します。
[アクション] で、[読み取り] の下にある Describe 関連の権限を選択します。Describe を検索して、関連するすべての権限を選択できます。
重要選択する権限が多すぎてポリシードキュメントが長さの制限を超えた場合は、して、制限の引き上げを依頼できます。
[リソース] を [すべてのリソース] に設定します。[条件の追加] をクリックします。[条件キー]、[演算子]、および [条件値] を設定します。
説明[条件] パラメーターでは、[条件キー] は
rds:ResourceTagである必要があり、[演算子] はStringEqualsである必要があります。[条件値] には、ステップ 1 で ApsaraDB RDS インスタンスにアタッチした [タグキー] と [タグ値] を入力します。
スクリプトエディター
スクリプトエディターで、次の内容を入力します。
説明次のスクリプトでは、
test-ramとrds-mysqlは例です。これらを、ステップ 1 で ApsaraDB RDS インスタンスにアタッチしたタグキーとタグ値に置き換えてください。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "rds:ResourceTag/test-ram": [ "rds-mysql" ] } } } ] }[OK] をクリックします。[ポリシーの作成] ダイアログボックスで、[ポリシー名] と [メモ] を入力します。ポリシーの内容を確認し、再度 [OK] をクリックします。
カスタムポリシーを RAM ユーザーにアタッチします。
左側のナビゲーションウィンドウで、[ID 管理] > [ユーザー] を選択します。
ターゲットユーザーを見つけ、[アクション] 列の [権限の追加] をクリックします。
[権限付与スコープ] で、この例で作成したリソースグループを選択します。[ポリシーの選択] セクションで、[カスタムポリシー] を選択します。作成したポリシーを検索して選択します。
[権限付与の確認] をクリックします。
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
ApsaraDB RDS インスタンスリストに移動し、上部のナビゲーションバーでリージョンを選択します。
[タグでフィルター] 機能を使用して、ステップ 1 でアタッチしたタグでフィルターします。ターゲットインスタンスが表示されます。

これで構成は完了です。指定した ApsaraDB RDS インスタンスに対する読み取り専用権限を RAM ユーザーに付与しました。必要に応じて、RAM ユーザーに他の権限を付与することもできます。