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

Resource Management:タグを使用してCloud Assistantコマンドの実行を制御する

最終更新日:Oct 31, 2024

Cloud Assistantコマンドは、RAMロールを使用するか、RAMユーザーとして、特定のタグを持つElastic Compute Service (ECS) インスタンスでのみ実行できます。 特定のタグが追加されていないECSインスタンスでコマンドを実行すると、コマンドの実行に失敗します。 このトピックでは、RAMユーザーとして特定のタグを持つECSインスタンスでCloud Assistantコマンドを実行する方法について説明します。 このトピックでは、使用できるカスタムポリシーの例と、一般的な問題および問題に対する解決策についても説明します。

手順

  1. Alibaba Cloudアカウントまたは管理権限を持つRAMユーザーを使用してRAMユーザーを作成します。

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

  2. Alibaba Cloudアカウントまたは管理権限を持つRAMユーザーを使用して、カスタムポリシーを作成します。

  3. Alibaba Cloudアカウントまたは管理権限を持つRAMユーザーを使用して、作成したRAMユーザーにカスタムポリシーをアタッチします。

    詳細については、「RAMユーザーへの権限の付与」をご参照ください。

  4. RAMユーザーとしてECSコンソールにログインして、Cloud Assistantページに移動して、カスタムポリシーで定義されている権限がRAMユーザーに付与されているかどうかをテストします。

    • user:aliceタグが追加されていないECSインスタンスでコマンドを実行すると、コマンドの実行に失敗します。

    • user:aliceタグが追加されたECSインスタンスでコマンドを実行すると、コマンドは正常に実行されます。

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

ポリシー1: RAMユーザーが特定のタグを持つECSインスタンスにのみコマンドを実行し、ファイルを転送できるようにする

このポリシーを使用すると、RAMユーザーはCloud Assistantコマンドを実行し、user:aliceタグが追加されたECSインスタンスにのみファイルを転送できます。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/user": "alice"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:command/*"
        }
    ]
}

ポリシー2: RAMユーザーがECSインスタンスに追加されたタグを照会し、ECSインスタンスを照会し、Cloud Assistantコマンドを管理できるようにする

このポリシーでは、RAMユーザーは、ECSインスタンスに追加されたタグの照会、ECSインスタンスの照会、およびCloud Assistantコマンドの管理のみを許可します。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeTag*",
                "ecs:DescribeInstance*",
                "ecs:DescribeCommands",
                "ecs:CreateCommand",
                "ecs:DeleteCommand",
                "ecs:ModifyCommand",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeSendFileResults",
                "ecs:DescribeInstances",
                "ecs:DescribeCloudAssistantStatus",
                "ecs:DescribeInvocations",
                "ecs:DescribeResourceByTags",
                "ecs:DescribeTagKeys",
                "ecs:DescribeTags",
                "ecs:ListTagResources",
                "ecs:DescribeManagedInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "oos:ListSecretParameters",
            "Resource": "*"
        }
    ]
}

一般的な問題と問題の解決策

カスタムポリシーが有効にならない場合は、次の権限のeffect要素がAllowに設定されているかどうかを確認する必要があります。

["ecs:InvokeCommand" 、"ecs:RunCommand" 、"ecs:StopInvocation" 、"ecs:SendFile"]

これらの権限のEffect要素が [許可] に設定されている場合、カスタムポリシーからこれらの権限を削除する必要があります。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "*"
        }
    ]
}