Elastic Compute Service (ECS) インスタンスにタグを追加し、カスタム Resource Access Management (RAM) ポリシーでタグを指定し、ビジネス要件に基づいてポリシーを RAM ユーザーにアタッチできます。このようにして、RAM ユーザーは承認された ECS インスタンスのみを表示および管理できます。
背景情報
タグを使用して、RAM ユーザーのリソースアクセスと操作権限を管理できます。これは、タグに基づいて RAM ユーザー認証を実装できることを示しています。次の図は、認証の実装方法を示しています。
カスタムポリシーの Condition 要素でタグを指定できます。タグは、次の条件キーをサポートしています。
acs:RequestTag/<tag-key>
: リクエストで渡されるタグ。この条件キーは、API 操作を呼び出すときにリクエストでタグを指定する必要があることを示します。acs:ResourceTag/<tag-key>
: リクエストされたリソースに追加されるタグ。この条件キーは、操作を実行するリソースにタグを追加する必要があることを示します。
手順
このセクションでは、RAM ユーザー Alice が owner:alice
タグと environment:production
タグが追加された ECS インスタンスのみを表示および管理できるようにする方法について説明します。
権限付与プロセス中、ECS インスタンスは正常に動作します。
アカウント管理者を使用して、次の手順を実行します。
RAM コンソール にログオンし、Alice という名前の RAM ユーザーを作成します。
詳細については、「RAM ユーザーを作成する」をご参照ください。
ECS インスタンスにタグを追加します。
この例では、
owner:alice
タグとenvironment:production
タグが ECS インスタンスに追加されます。次のいずれかの方法を使用してタグを追加できます。
リソース管理コンソールのタグ ページ で ECS インスタンスにタグを追加します。詳細については、「タグを作成する」および「タグを追加する」をご参照ください。
ECS コンソール で ECS インスタンスにタグを追加します。詳細については、「タグを作成し、リソースにタグを追加する」をご参照ください。
RAM コンソール で、UseTagAccessRes という名前のカスタムポリシーを作成します。
次のコードは、ポリシーのドキュメントを提供します。詳細については、「カスタムポリシーの作成」をご参照ください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": [ "alice" ], "acs:RequestTag/environment": [ "production" ] } } }, { "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" } ] }
次の表は、ポリシーの構成について説明しています。
構成
説明
{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/owner": "alice", "acs:RequestTag/environment": "production" } } }
owner:alice
タグとenvironment:production
タグに基づいて ECS インスタンスのフィルタリングを許可します。{ "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/owner": [ "alice" ], "acs:ResourceTag/environment": [ "production" ] } } }
owner:alice
タグとenvironment:production
タグが追加された ECS インスタンスでの管理操作を許可します。{ "Effect": "Allow", "Action": [ "ecs:List*", "ecs:DescribeInstanceStatus", "ecs:DescribeInstanceVncUrl", "ecs:DescribeInstanceAutoRenewAttribute", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceTypeFamilies", "ecs:DescribeInstanceTypes", "ecs:DescribeInstanceAttachmentAttributes", "ecs:DescribeInstancesFullStatus", "ecs:DescribeInstanceHistoryEvents", "ecs:DescribeInstanceMonitorData", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeInstanceModificationPrice", "ecs:DescribeA*", "ecs:DescribeC*", "ecs:DescribeD*", "ecs:DescribeE*", "ecs:DescribeH*", "ecs:DescribeIm*", "ecs:DescribeInv*", "ecs:DescribeK*", "ecs:DescribeL*", "ecs:DescribeM*", "ecs:DescribeN*", "ecs:DescribeP*", "ecs:DescribeR*", "ecs:DescribeS*", "ecs:DescribeT*", "ecs:DescribeZ*", "vpc:DescribeVpcs", "vpc:DescribeVSwitches" ], "Resource": "*" }
ECS インスタンスに関する情報の表示を許可します。
{ "Effect": "Deny", "Action": [ "ecs:DeleteTags", "ecs:UntagResources", "ecs:CreateTags", "ecs:TagResources" ], "Resource": "*" }
タグの作成、追加、削除、および削除の操作を拒否します。
これにより、このポリシーがアタッチされている RAM ユーザーがタグを変更することを防ぎます。RAM ユーザーが ECS インスタンスのタグを変更すると、RAM ユーザーは ECS インスタンスに対する関連する権限を失います。
RAM コンソール で、作成したポリシーを RAM ユーザー Alice にアタッチします。
承認スコープに [Alibaba Cloud アカウント]、プリンシパルに RAM ユーザー Alice、ポリシーの選択にカスタムポリシー UseTagAccessRes を選択します。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
結果の確認
RAM ユーザー Alice として ECS コンソール にログオンします。
詳細については、「RAM ユーザーとして Alibaba Cloud 管理コンソールにログオンする」をご参照ください。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、ECS インスタンスが存在するリージョンを選択します。
[インスタンス] ページで、検索ボックスの右側にある [タグで絞り込む] をクリックし、
owner:alice
タグとenvironment:production
タグを選択します。重要RAM ユーザーは、タグを選択した後でのみ、タグが追加された ECS インスタンスを表示できます。タグが選択されていない場合、RAM ユーザーは ECS インスタンスを表示できません。
owner:alice
タグとenvironment:production
タグが追加された ECS インスタンスのみを表示および管理します。
関連情報
ECS の RAM 認証ルールの詳細については、「RAM 権限付与」をご参照ください。