ECS (Elastic Compute Service) インスタンスにタグを追加したり、カスタムRAM (Resource Access Management) ポリシーでタグを指定したり、ビジネス要件に基づいてRAMユーザーにポリシーをアタッチしたりできます。 これにより、RAMユーザーは許可されたECSインスタンスのみを表示および管理できます。
背景情報
タグを使用して、RAMユーザーのリソースアクセスと操作権限を管理できます。 これは、タグに基づいてRAMユーザー認証を実装できることを示しています。 次の図は、認証の実装方法を示しています。
カスタムポリシーのポリシー要素要素でタグを指定できます。 タグは次の条件キーをサポートします。
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アカウント、PrincipalにはRAMユーザーAlice、Select policyにはカスタムポリシーUseTagAccessResを選択します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。
Verify the result
RAMユーザーAliceとしてECSコンソールにログインします。
詳細については、「Alibaba Cloud管理コンソールへのRAMユーザーとしてのログイン」をご参照ください。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、ECSインスタンスが存在するリージョンを選択します。
インスタンスページで、検索ボックスの右側にあるタグによるフィルタリングをクリックして、
所有者: alice
と環境: プロダクション
タグを選択します。重要RAMユーザーは、タグを選択した後にのみ、タグが追加されたECSインスタンスを表示できます。 タグが選択されていない場合、RAMユーザーはECSインスタンスを表示できません。
owner:alice
およびenvironment:production
タグが追加されたECSインスタンスのみを表示および管理します。
関連ドキュメント
ECSのRAM認証ルールの詳細については、「認証ルール」をご参照ください。