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

Elastic Container Instance:RAM ユーザー認証にタグを使用する

最終更新日:May 08, 2026

これにより、異なるユーザーに対して異なるクラウドリソースの権限を付与できます。

背景情報

タグを使用してクラウドリソースを識別および分類できます。Resource Access Management (RAM) はポリシーを使用してこれらのリソースへのアクセスと操作を制御します。タグと RAM を組み合わせることで、ポリシー内の条件としてタグを使用し、クラウドリソースに対するきめ細かい権限管理を実現できます。

タグに基づく RAM ユーザー権限の制御ロジック(タグベース認証とも呼ばれます)は次のとおりです。

标签鉴权逻辑

説明

タグをサポートする ECI リソースには、ECI インスタンス、イメージキャッシュ、仮想ノードが含まれます。ECI リソースにタグをアタッチできるのは、作成時または更新時のみです。詳細については、「ECI インスタンスの管理にタグを使用する」をご参照ください。

設定例

例となるシナリオ

このトピックでは、以下のシナリオを使用してタグベース認証を説明します。

特定のタグ(例:env:test)が付与された ECI リソースに対してのみ操作を許可するように RAM ユーザーを制限する必要があると仮定します(下図参照)。标签鉴权

具体的な要件は次のとおりです。

  • 要件 1:ECI リソースを作成する場合、ユーザーは作成時に env:test タグを付与する必要があります。

  • 要件 2:ユーザーは env:test タグが付与された ECI リソースに対してのみ操作できます。

  • 要件 3:ECI リソースをクエリする場合、ユーザーは env:test タグが付与されたリソースのみを表示できます。

ステップ 1:カスタムポリシーの設定と付与

  1. Alibaba Cloud アカウントで RAM コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、Permissions > Policies を選択します。

  3. Policies ページで、Create Policy をクリックします。

  4. カスタムポリシーを設定します。

    1. 引用ポリシー タブをクリックします。

    2. 表示されるダイアログボックスで、右側のフィルターオプションから システムポリシー を選択します。次に、AliyunECIFullAccess を検索して選択し、インポート をクリックします。

      AliyunECIFullAccess は、ECI リソースを管理するためのデフォルトのシステムポリシーです。ECI リソースの操作、セキュリティグループや VPC などの関連リソースのクエリ、ECI のサービスリンクロールの作成に関する権限が含まれています。

    3. JSON タブをクリックします。

    4. エディター内のポリシー内容を変更し、次のステップ をクリックします。

      説明

      ポリシーは一連のアクセス権限のセットです。バージョン番号とステートメントのリストで構成されています。各ステートメントには、効果(Effect)、操作(Action)、リソース(Resource)、およびオプションの条件(Condition)が含まれます。詳細については、「ポリシーの構造と構文」および「ポリシー要素」をご参照ください。

      ポリシーの Condition 要素に、タグベースの条件を追加して権限を制限できます。サポートされているタグ条件キーは次のとおりです。

      タグ条件キー

      説明

      acs:RequestTag

      リクエストに特定のタグを含めるよう制限します。

      API リクエストにタグパラメーターが含まれていない場合、ポリシー内で acs:RequestTag を使用できません。そうしないと、認証が失敗します。

      acs:ResourceTag

      特定のタグが付与されたリソースに対してのみ操作を許可します。

      API リクエストにリソース ID パラメーターが含まれていない場合、ポリシー内で acs:ResourceTag を使用できません。そうしないと、認証が失敗します。

      説明

      権限ポリシーを設計する際は、ビジネス要件および API オペレーションの特性(リソース ID を必要とするか、タグの受け渡しをサポートしているかなど)に基づいて、acs:RequestTag または acs:ResourceTag を設定してください。詳細については、「API 認証」をご参照ください。

      例となるシナリオの要件を満たすために、次のようにポリシーを設計します。

      要件

      ポリシー

      env:test タグが付与されている場合にのみ、ECI リソースを作成できます。

      {
         "Effect": "Allow",
         "Action": "eci:Create*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:RequestTag/env": "test"
          }
         }
        }

      ユーザーは env:test タグが付与された ECI リソースに対してのみ操作できます。

      {
         "Effect": "Allow",
         "Action": "eci:*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:ResourceTag/env": "test"
          }
         }
        }

      ECI リソースをクエリする場合、ユーザーは env:test タグが付与されたリソースのみを表示できます。

      {
         "Effect": "Allow",
         "Action": "eci:Describe*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:RequestTag/env": "test"
          }
         }
        }

      AliyunECIFullAccess の権限を含む完全なポリシー例は次のとおりです。

      {
       "Version": "1",
       "Statement": [{
         "Effect": "Allow",
         "Action": "eci:Create*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:RequestTag/env": "test"
          }
         }
        },
        {
         "Effect": "Allow",
         "Action": "eci:*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:ResourceTag/env": "test"
          }
         }
        },
        {
         "Effect": "Allow",
         "Action": "eci:Describe*",
         "Resource": "*",
         "Condition": {
          "StringEquals": {
           "acs:RequestTag/env": "test"
          }
         }
        },
        {
         "Action": [
          "ecs:DescribeSecurityGroups"
         ],
         "Resource": "*",
         "Effect": "Allow"
        },
        {
         "Action": [
          "vpc:DescribeVSwitches",
          "vpc:DescribeVpcs",
          "vpc:DescribeEipAddresses"
         ],
         "Resource": "*",
         "Effect": "Allow"
        },
        {
         "Action": "ram:CreateServiceLinkedRole",
         "Resource": "*",
         "Effect": "Allow",
         "Condition": {
          "StringEquals": {
           "ram:ServiceName": [
            "eci.aliyuncs.com",
            "vnode.eci.aliyuncs.com"
           ]
          }
         }
        }
       ]
      }
      説明

      OpenAPI を使用して ECI リソースを操作する場合は、AliyunECIFullAccess ポリシーで十分です。ECI コンソールを使用する場合は、追加の権限を付与する必要があります。詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    5. ポリシー名を入力し、はい をクリックします。

  5. カスタムポリシーを RAM ユーザーに付与します。

    1. 左側のナビゲーションウィンドウで、Identities > Users を選択します。

    2. RAM ユーザーを作成します。

      RAM ユーザーがない場合は、管理上のニーズに基づいて作成してください。詳細については、「RAM ユーザーの作成」をご参照ください。

    3. RAM ユーザーに権限を付与します。

      カスタムポリシーを RAM ユーザーに付与します。詳細については、「RAM ユーザーの権限管理」をご参照ください。

ステップ 2:ポリシーの検証

  1. RAM ユーザーとして OpenAPI Explorer にログインします。

  2. ポリシーが有効であることを確認します。

    以下のテストでは、ECI インスタンスを例として使用します。

    • ECI インスタンスの作成

      • env:test タグを設定した場合、インスタンスは正常に作成されます。

      • タグを設定しない場合、または別のタグを設定した場合、作成は失敗し、権限拒否エラーが返されます。

    • ECI インスタンスの削除

      • ECI インスタンスに env:test タグが付与されている場合、削除は成功します。

      • ECI インスタンスに env:test タグが付与されていない場合、削除は失敗し、権限拒否エラーが返されます。

    • ECI インスタンスのクエリ

      • env:test タグが付与されたインスタンスを指定し、クエリでタグを指定しない場合、クエリは指定された ECI インスタンスの情報を返します。

      • env:test タグが付与されていないインスタンスを指定した場合、クエリは空の結果を返します。

      • インスタンスを指定せず、クエリで env:test タグのみを設定した場合、クエリは env:test タグが付与されたすべてのインスタンスの情報を返します。

      • インスタンスもタグも指定しない場合、クエリは空の結果を返します。

API 認証

タグベースポリシーを持つ RAM ユーザーによる API 呼び出しの認証方法を次の表に示します。

操作

説明

CreateContainerGroup や CreateImageCache などの作成操作

これらの操作ではリソース ID が不要なため、認証は acs:RequestTag に基づきます。

  • リクエストに承認済みのタグが含まれていない場合、認証は失敗します。

  • リクエストに承認済みのタグが含まれている場合、認証は成功します。

DescribeContainerGroups や DescribeImageCaches などのクエリ操作

これらの操作では、リソース ID を指定することも、タグを提供することも可能です。そのため、認証は acs:ResourceTag または acs:RequestTag のいずれかに基づきます。

  • リソース ID とタグの両方を提供する場合、指定されたリソースのタグが acs:ResourceTag に一致するか、提供されたタグが acs:RequestTag に一致すれば認証は成功します。それ以外の場合は認証が失敗します。

  • リソース ID を提供するがタグを提供しない場合、指定されたリソースのタグが acs:ResourceTag に一致すれば認証は成功します。それ以外の場合は認証が失敗します。

  • タグを提供するがリソース ID を提供しない場合、提供されたタグが acs:RequestTag に一致すれば認証は成功します。それ以外の場合は認証が失敗します。

  • リソース ID もタグも提供しない場合、認証は失敗します。

説明

クエリ操作の認証が失敗した場合、エラーではなく空の結果が返されます。

UpdateContainerGroup や UpdateImageCache などの更新操作

これらの操作ではリソース ID が必要なため、認証は acs:ResourceTag に基づきます。

  • タグを提供しない場合、指定されたリソースのタグが条件に一致すれば認証は成功します。それ以外の場合は認証が失敗します。

  • 既存のタグを更新するためにタグを提供する場合、リソースの現在のタグが条件に一致し、かつユーザーが新しいタグに対する権限を持っている場合にのみ認証は成功します。それ以外の場合は認証が失敗します。

説明

タグを更新する際、RAM ユーザーはリソースの現在のタグに対する権限と、新しいタグを適用する権限の両方を保持している必要があります。これには、元のタグと新しいタグの両方に対するポリシー条件が必要になる場合があります。

RestartContainerGroup や ExecContainerCommand などのその他の操作

これらの操作ではリソース ID が必要なため、認証は acs:ResourceTag に基づきます。

  • 指定されたリソースのタグが条件に一致しない場合、認証は失敗します。

  • 指定されたリソースのタグが条件に一致する場合、認証は成功します。