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