すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:タグを使用してRAMユーザーが許可されたECSインスタンスのみを管理できるようにする

最終更新日:Oct 30, 2024

ECS (Elastic Compute Service) インスタンスにタグを追加したり、カスタムRAM (Resource Access Management) ポリシーでタグを指定したり、ビジネス要件に基づいてRAMユーザーにポリシーをアタッチしたりできます。 これにより、RAMユーザーは許可されたECSインスタンスのみを表示および管理できます。

背景情報

タグを使用して、RAMユーザーのリソースアクセスと操作権限を管理できます。 これは、タグに基づいてRAMユーザー認証を実装できることを示しています。 次の図は、認証の実装方法を示しています。

image

カスタムポリシーのポリシー要素要素でタグを指定できます。 タグは次の条件キーをサポートします。

  • acs:RequestTag/<tag-key>: リクエストで渡されるタグ。 この条件キーは、API操作を呼び出すときにリクエストにタグを指定する必要があることを示します。

  • acs:ResourceTag/<tag-key>: 要求されたリソースに追加されるタグ。 この条件キーは、操作を実行するリソースにタグを追加する必要があることを示します。

手順

このセクションでは、RAMユーザーAliceが、owner:aliceおよびenvironment:productionタグが追加されたECSインスタンスのみを表示および管理できるようにする方法について説明します。

説明

認証プロセス中、ECSインスタンスは期待どおりに機能します。

アカウント管理者を使用して、次の手順を実行します。

  1. RAMコンソールにログインし、Aliceという名前のRAMユーザーを作成します。

    詳細については、「RAM ユーザーの作成」をご参照ください。

  2. ECSインスタンスにタグを追加します。

    この例では、owner:aliceタグとenvironment:productionタグがECSインスタンスに追加されます。

    次のいずれかの方法でタグを追加できます。

  3. 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インスタンスに対する関連する権限を持ちません。

  4. RAMコンソールで作成したポリシーをRAMユーザーAliceにアタッチします。

    承認されたスコープにはAlibaba Cloudアカウント、PrincipalにはRAMユーザーAlice、Select policyにはカスタムポリシーUseTagAccessResを選択します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

Verify the result

  1. RAMユーザーAliceとしてECSコンソールにログインします。

    詳細については、「Alibaba Cloud管理コンソールへのRAMユーザーとしてのログイン」をご参照ください。

  2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンスを選択します。

  3. 上部のナビゲーションバーで、ECSインスタンスが存在するリージョンを選択します。

  4. インスタンスページで、検索ボックスの右側にあるタグによるフィルタリングをクリックして、所有者: alice環境: プロダクションタグを選択します。

    image.png

    重要

    RAMユーザーは、タグを選択した後にのみ、タグが追加されたECSインスタンスを表示できます。 タグが選択されていない場合、RAMユーザーはECSインスタンスを表示できません。

  5. owner:aliceおよびenvironment:productionタグが追加されたECSインスタンスのみを表示および管理します。

関連ドキュメント

ECSのRAM認証ルールの詳細については、「認証ルール」をご参照ください。