Resource Access Management (RAM) は、ARN ベースの認可、リソースグループベースの認可、タグベースの認可など、複数の方法で、きめ細かなアクセス制御をサポートします。このトピックでは、RAM ユーザーに特定の ApsaraDB RDS インスタンスの読み取り専用権限を付与する例を用いて、各認可方法を説明します。
前提条件
RAM ユーザーが作成済みであることを確認してください。詳細については、「RAM ユーザーの作成」をご参照ください。
認可方法の選択
-
ARN ベースの認可
-
特徴:ARN ベースの認可を使用すると、特定の ApsaraDB RDS インスタンスに対して読み取り専用権限を厳密に付与できます。
-
シナリオ:この方法は、単一または少数の特定の ApsaraDB RDS インスタンスに対する権限制御に適しています。
-
例:開発環境内の特定の ApsaraDB RDS インスタンス。
-
-
リソースグループベースの認可
-
特徴:リソースグループを使用して、複数の ApsaraDB RDS インスタンスをグループ化できます。リソースグループベースの認可により、複数の ApsaraDB RDS インスタンスに同じ権限を一度に付与できます。
-
シナリオ:この方法は、類似した特性を持つ一連の ApsaraDB RDS インスタンスに対する一括認可に適しています。
-
例:複数の ApsaraDB RDS インスタンスが異なるリージョンやプロジェクトに分散していても、同じセキュリティポリシーが必要な場合、これらのインスタンスをリソースグループに追加し、そのグループ内のすべてのインスタンスに読み取り専用権限を付与できます。
-
-
タグベースの認可
-
特徴:タグベースの認可により、タグのキーと値のペアに基づいて権限を動的に付与できます。
-
シナリオ:タグを使用して ApsaraDB RDS インスタンスの権限を柔軟に管理したい場合は、この方法を選択します。ビジネス属性やその他のメタデータに基づいた権限制御に適しています。
-
例:
env=prod、env=test、project=financeなど、異なるタグを持つ複数の ApsaraDB RDS インスタンスがあるとします。タグベースの認可ルールを使用することで、特定のユーザーが特定のタグを持つ ApsaraDB RDS インスタンスのみにアクセスできるようになり、各インスタンスに個別に権限を設定する必要がなくなります。
-
操作手順
以下の認可操作を実行するには、Alibaba Cloud アカウントを使用する必要があります。
方法 1:ARN
ARN ベースの認可では、リソース ARN (Alibaba Cloud Resource Name) を使用して 1 つ以上のリソースを指定するポリシーを作成します。この方法により、特定のリソースに対して厳密な認可が可能になります。リソース ARN の詳細については、「ポリシー要素」をご参照ください。
-
ポリシーを作成します。
-
RAM コンソールにログインします。
-
左側のナビゲーションウィンドウで、権限管理 > ポリシー を選択します。
-
ポリシーの作成 をクリックします。
-
[ビジュアルエディター] タブまたは スクリプトの編集 タブをクリックします。
ビジュアルエディター
-
Effect を 許可 に、サービス を ApsaraDB RDS に設定します。
-
操作 列で、[読み取り操作] の下にある Describe 関連の権限を選択します。Describe を検索して、すべての Describe 関連の権限を選択できます。
重要多数の権限を選択したためにポリシードキュメントが長さ制限を超える場合は、チケットを送信して、ポリシードキュメントの長さ制限を増やすよう依頼できます。
-
リソース には リソースの指定 を選択し、認可する リソース の ARN を
acs:rds:{#regionId}:{#accountId}:dbinstance/{#dbinstanceId}のフォーマットで指定します。 Condition を設定する必要はありません。 -
[ステートメントの追加] をクリックします。Effect を 許可 に、サービス を [ApsaraDB RDS] に設定します。
-
操作 を rds:DescribeDBInstances に設定します。 リソース には、すべてのリソース を選択します。 Condition を設定する必要はありません。
JSON エディター
ポリシーエディターに以下の内容を入力します。
{#dbinstanceId}をインスタンスの ID に置き換えてください。{ "Statement": [ { "Effect": "Allow", "Action": "rds:Describe*", "Resource": "acs:rds:*:*:dbinstance/{#dbinstanceId}" }, { "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ], "Version": "1" } -
-
OKをクリックします。ポリシーの作成 ダイアログボックスで、ポリシー名 と 補足 を入力します。ポリシーの内容が正しいことを確認し、OK をクリックします。
-
-
カスタムポリシーを RAM ユーザーにアタッチします。
-
左側のナビゲーションペインで、アイデンティティ > ユーザー を選択します。
-
対象のユーザーを見つけ、操作 列の 権限の追加 をクリックします。
-
ポリシー セクションで、カスタムポリシー タブをクリックし、作成したポリシーを検索して選択します。
-
[OK] をクリックします。
-
-
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
-
RAM ユーザーとして ApsaraDB RDS インスタンスページに移動し、上部でリージョンを選択してインスタンスリストを表示します。
-
認可されたインスタンスをクリックして、詳細を表示します。
説明この認可方法では、RAM ユーザーはインスタンスリストページですべてのインスタンスを確認できますが、詳細を表示できるのは認可された特定のインスタンスのみです。認可されていないインスタンスを表示しようとすると、
insufficient permissionsというエラーが表示されます。
-
設定は以上です。これで、指定した ApsaraDB RDS インスタンスに対する読み取り専用権限が RAM ユーザーに付与されました。RAM ユーザーに他の権限を付与することもできます。
方法 2:リソースグループ
リソースグループベースの認可では、認可するリソースを同じリソースグループに追加します。次に、RAM ユーザーに権限を付与する際に、認可対象のリソースを含むリソースグループを指定します。これにより、指定されたリソースグループ内のすべてのリソースに対して厳密な認可が可能になります。
-
リソースグループを作成します。
-
リソース管理コンソールにログインします。 左側のナビゲーションペインで、リソースグループをクリックします。
-
リソースグループの作成をクリックします。リソースグループ識別子 と リソースグループ名 を設定し、OK をクリックします。
-
-
対象のインスタンスを新しいリソースグループに転送します。
-
別のリソースグループで、承認したいインスタンスを見つけます。 たとえば、対象のインスタンスが デフォルトのリソースグループ にある場合、デフォルトリソースグループの 操作 列にある Resource Management をクリックします。
-
ID で対象のインスタンスを検索し、インスタンスを選択して、[リソースの転送] をクリックします。
-
[リソースの転送] ダイアログボックスで、ステップ 1 で作成したリソースグループを選択し、OK をクリックします。
-
「成功」ダイアログボックスで、OK をクリックします。
新しいリソースグループに対象のインスタンスが表示されていれば、転送は成功です。
-
-
ポリシーを作成します。
-
RAM コンソールにログインします。
-
左側のナビゲーションペインで、権限管理 > ポリシー を選択します。
-
ポリシーの作成 をクリックします。
-
[ビジュアルエディター] タブまたは スクリプトの編集 タブをクリックします。
ビジュアルエディター
-
Effect を 許可 に、サービス を [ApsaraDB RDS] に設定します。
-
操作 では、[読み取り操作] から Describe 関連の権限を選択します。 Describe を検索し、すべての Describe 関連の権限を選択できます。
重要多数の権限を選択したためにポリシードキュメントが長さ制限を超える場合は、チケットを送信して、ポリシードキュメントの長さ制限を増やすよう依頼できます。
-
リソース には すべてのリソース を選択します。Condition は設定する必要はありません。
JSON エディター
ポリシーエディターに以下の内容を入力します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*" ], "Resource": "*" } ] } -
-
OK をクリックします。ポリシーの作成 ダイアログボックスで、ポリシー名 と 補足 を入力します。ポリシーの内容が正しいことを確認し、OK をクリックします。
-
-
カスタムポリシーを RAM ユーザーにアタッチします。
-
左側のナビゲーションペインで、アイデンティティ > ユーザー を選択します。
-
対象のユーザーを見つけ、操作 列の 権限の追加 をクリックします。
-
[リソースグループ] を、この例で作成したリソースグループに設定します。 次に、ポリシー セクションで カスタムポリシー をクリックし、作成したポリシーを検索して選択します。
-
[OK] をクリックします。
-
-
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
-
RAM ユーザーとして ApsaraDB RDS インスタンスページに移動し、上部でリージョンを選択します。
-
作成したリソースグループを選択します。そのグループ内のインスタンスが表示されます。対象のインスタンスを見つけて、**[操作]** 列の **[管理]** をクリックし、アクセスを確認します。
-
設定は以上です。これで、指定した ApsaraDB RDS インスタンスに対する読み取り専用権限が RAM ユーザーに付与されました。RAM ユーザーに他の権限を付与することもできます。
方法 3:タグ
タグベースの認可では、認可するリソースに同じタグを追加します。次に、ポリシーを作成する際に、指定されたタグを持つリソースにのみ適用されるように設定します。これにより、一致するタグを持つすべてのリソースに対して厳密な認可が可能になります。
-
ApsaraDB RDS インスタンスにカスタムタグを追加します。
-
ApsaraDB RDS インスタンスページに移動し、上部でリージョンを選択してから、認可する対象のインスタンスを見つけます。
-
タグ 列で
アイコンをクリックし、次に 編集 をクリックします。 -
タグキーとタグ値を設定し、OK をクリックします。
この例では、タグキーは
test-ram、タグ値はrds-mysqlです。意味のあるタグキーとタグ値を使用することを推奨します。設定が完了すると、ApsaraDB RDS インスタンスページの **[タグ]** 列に追加されたタグを確認できます。
-
-
ポリシーを作成します。
-
RAM コンソールにログインします。
-
左側のナビゲーションペインで、権限管理 > ポリシー を選択します。
-
ポリシーの作成 をクリックします。
-
[ビジュアルエディター] タブまたは スクリプトの編集 タブをクリックします。
ビジュアルエディター
-
Effectを許可に、サービスを [ApsaraDB RDS] に設定します。
-
操作 では、[読み取り操作] から Describe 関連の権限を選択します。Describe を検索して、すべての Describe 関連の権限を選択できます。
重要多数の権限を選択したためにポリシードキュメントが長さ制限を超える場合は、チケットを送信して、ポリシードキュメントの長さ制限を増やすよう依頼できます。
-
リソース には すべてのリソース を選択します。条件の追加 をクリックし、[条件キー]、演算子、および [条件値] を設定します。
説明Condition 設定で、演算子 を
StringEqualsに設定します。[条件キー] には、rds:ResourceTag/your_tag_keyの形式で値を入力します。「your_tag_key」をステップ 1 の タグキー に置き換えます。[条件値] には、対応する タグ値 を入力します。
JSON エディター
ポリシーエディターに以下の内容を入力します。
説明以下のスクリプトでは、
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 ユーザーにアタッチします。
-
左側のナビゲーションペインで、アイデンティティ > ユーザー を選択します。
-
対象のユーザーを探し、操作 列で権限の追加をクリックします。
-
ポリシー セクションで、カスタムポリシー タブをクリックします。作成したポリシーを検索して選択します。
-
[OK] をクリックします。
-
-
RAM ユーザーとして ApsaraDB RDS コンソールにログインし、インスタンスを表示します。
-
RAM ユーザーとして ApsaraDB RDS インスタンスページに移動し、上部でリージョンを選択します。
-
タグでフィルタリング 機能を使用して、ステップ 1 で ApsaraDB RDS インスタンスに追加したタグでフィルターし、対象のインスタンスを表示します。 [タグでフィルター] 機能を使用して
test-ram:rds-mysqlタグを選択すると、インスタンスリストにはこのタグを持つインスタンスのみが表示されます。 これにより、RAM ユーザーは権限が付与されたタグに関連付けられているリソースのみを表示できることが確認されます。
-
設定は以上です。これで、指定した ApsaraDB RDS インスタンスに対する読み取り専用権限が RAM ユーザーに付与されました。RAM ユーザーに他の権限を付与することもできます。