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

Auto Scaling:タグを使用したスケーリンググループの権限管理

最終更新日:Jun 22, 2026

Auto Scaling では、タグを使用してスケーリンググループを分類し、アクセスを制御できます。個々のスケーリンググループ、または特定のタグを共有する複数のグループに対して、詳細な権限を付与できます。このトピックでは、タグベース認証を使用して RAM ユーザーの権限を管理し、管理効率の向上とデータ漏えいリスクの低減を実現する方法について説明します。

背景情報

  • タグは、クラウドリソースの識別子です。タグを使用すると、さまざまなディメンションから同じ特性を持つクラウドリソースを分類、検索、集約できます。詳細については、「タグ」をご参照ください。

  • Resource Access Management (RAM) を使用すると、ユーザー ID を管理し、ポリシーに基づいてクラウドリソースへのアクセスと操作を制御できます。詳細については、「RAM とは」をご参照ください。

Resource Access Management (RAM) ポリシーでタグを条件として使用することで、Auto Scaling に対する詳細な制御を実装できます。

次の図は、タグを使用して RAM ユーザーのリソースアクセス権限と操作権限を管理する方法 (タグベース認証) を示しています。

タグ認証をサポートしない API

タグベース認証のポリシーを RAM ユーザーにアタッチした後、RAM ユーザーが次の API オペレーションを呼び出して Auto Scaling を管理する場合、タグベース認証はサポートされません。

API

タグ認証のサポート

DescribeRegions

いいえ

スケーリンググループに関連付けられていない定期タスクの場合:

  • CreateScheduledTask

  • ModifyScheduledTask

  • DescribeScheduledTasks

  • DeleteScheduledTask

いいえ

スケーリンググループに関連付けられていない監視タスクの場合:

  • CreateAlarm

  • DescribeAlarms

  • ModifyAlarm

  • EnableAlarm

  • DeleteAlarm

いいえ

シナリオ例

このトピックでは、次のシナリオを使用して、タグベース認証を実装する方法を示します。

ゲーム開発用に 2 つのスケーリンググループを作成したと仮定します。各スケーリンググループには、環境とチームによってタグが付けられています。RAM ユーザーに、次のスケーリンググループに対する特定の権限を付与する必要があります。

スケーリンググループ

名前

タグ

スケーリンググループ 1

asg-001

  • タグ 1: environment:test (タグキーは environment、タグ値は test)

  • タグ 2: team:game1 (タグキーは team、タグ値は game1)

スケーリンググループ 2

asg-002

  • タグ 1: environment:dev (タグキーは environment、タグ値は dev)

  • タグ 2: team:game2 (タグキーは team、タグ値は game2)

特定のアクセス制御要件は次のとおりです。

  • シナリオ 1: タグなしでスケーリンググループを作成することはできません。スケーリンググループ 1 は、作成時に environment:testteam:game1 のタグを追加した場合にのみ正常に作成できます。

  • シナリオ 2: スケーリンググループをクエリするとき、environment:testteam:game1 のタグがバインドされているスケーリンググループ 1 のリソースのみを表示できます。

  • シナリオ 3: スケーリンググループ 1 (タグ environment:testteam:game1 を持つ) のリソースのみを管理でき、スケーリンググループ 2 (タグ environment:devteam:game2 を持つ) のリソースは管理できません。

操作手順

説明

開始する前に、RAM ユーザーが作成されていることを確認してください。詳細については、「RAM ユーザーの作成」をご参照ください。

  1. 2 つのスケーリンググループを作成します。

    詳細については、「スケーリンググループの設定」をご参照ください。スケーリンググループの詳細については、「シナリオ例」をご参照ください。

  2. RAM コンソールにログインします。

  3. カスタムポリシーを作成します。

    詳細については、「カスタムポリシーの作成」をご参照ください。

    ポリシーの Condition ブロックでクラウドリソースに複数のタグ条件を設定して、Auto Scaling リソースに対する操作権限を制限できます。サポートされているタグベースの認証条件:

    タグベースの条件

    説明

    acs:RequestTag

    リクエストに特定のタグが含まれているかどうかを確認します。

    API リクエストにタグパラメーターが含まれていない場合、acs:RequestTag を使用すると認証が失敗します。

    acs:ResourceTag

    リクエストで指定されたリソースに特定のタグが含まれているかどうかを確認します。

    リソース ID パラメーターを含まない API リクエストで acs:ResourceTag を使用すると、認証は失敗します。

    次のコードブロックは、完全なポリシーの例を示しています:

    {
        "Version": "1",
        "Statement": [
             {
               "Effect": "Allow",
               "Action": "ess:Create*",
               "Resource": "*",
               "Condition": {
                       "StringEquals": {
                            "acs:RequestTag/environment": "test",
                            "acs:RequestTag/team": "game1"
                       }
                  }
             },
             {
                "Effect": "Allow",
                "Action": "ess:Describe*",
                "Resource": "*",
                "Condition": {
                        "StringEquals": {
                        "acs:RequestTag/environment": "test",
                        "acs:RequestTag/team": "game1"
                        }
                  }
             },
             {
                "Action": "ess:*",
                "Effect": "Allow",
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "acs:ResourceTag/environment": "test",
                        "acs:ResourceTag/team": "game1"
                      }
                  }
             },
             {
                "Effect": "Allow",
                "Action": [
                       "ess:Describe*",
                       "ess:List*",
                       "ess:DescribeRegions",
                       "ess:CreateScheduledTask",
                       "ess:ModifyScheduledTask",
                       "ess:DescribeScheduledTasks",
                       "ess:DeleteScheduledTask",
                       "ess:CreateAlarm",
                       "ess:DescribeAlarms",
                       "ess:ModifyAlarm",
                       "ess:EnableAlarm",
                       "ess:DeleteAlarm"
                    ],
        "Resource": "*"
          }
       ]
    }
    • シナリオ 1: スケーリンググループ作成時に特定のタグを強制する

      つまり、スケーリンググループ 1 は、作成時に environment:testteam:game1 のタグがバインドされている場合にのみ正常に作成できます。

      次のポリシーがこのシナリオに対応します:

      {
          "Effect": "Allow",
          "Action": "ess:Create*",
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "acs:RequestTag/environment": "test",
                  "acs:RequestTag/team": "game1"
              }
          }
      }
    • シナリオ 2: ユーザーにスケーリンググループ 1 のみの表示を許可する

      これは、environment:testteam:game1 のタグをスケーリンググループ 1 にアタッチした場合、スケーリンググループをクエリするとスケーリンググループ 1 のリソースのみが返されることを意味します。

      次のポリシーがこのシナリオに対応します:

      {
          "Effect": "Allow",
          "Action": "ess:Describe*",
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "acs:RequestTag/environment": "test",
                  "acs:RequestTag/team": "game1"
              }
          }
      }
    • シナリオ 3: ユーザーにスケーリンググループ 1 のみの管理を許可し、スケーリンググループ 2 へのアクセスを拒否する

      たとえば、スケーリンググループ 1 には environment:testteam:game1 のタグがバインドされ、スケーリンググループ 2 には environment:devteam:game2 のタグがバインドされています。

      次のポリシーがこのシナリオに対応します:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ess:*",
                  "Effect": "Allow",
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/environment": "test",
                          "acs:ResourceTag/team": "game1"
                      }
                  }
              },
              {
                  "Action": "ess:*",
                  "Effect": "Deny",
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/environment": "dev",
                          "acs:ResourceTag/team": "game2"
                      }
                  }
              },      
              {
                 "Effect": "Allow",
                 "Action": [
                         "ess:DescribeRegions",
                         "ess:CreateScheduledTask",
                         "ess:ModifyScheduledTask",
                         "ess:DescribeScheduledTasks",
                         "ess:DeleteScheduledTask",
                         "ess:CreateAlarm",
                         "ess:DescribeAlarms",
                         "ess:ModifyAlarm",
                         "ess:EnableAlarm",
                         "ess:DeleteAlarm"
                      ],
          "Resource": "*"
            }
         ]
      }
  4. カスタムポリシーを RAM ユーザーにアタッチします。

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

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

    • スケーリンググループ 1 を作成してシナリオ 1 を検証する

      • スケーリンググループ 1 には environment:testteam:game1 のタグがあるため、正常に作成できます。

      • 指定されたタグなしでスケーリンググループを作成すると、権限が不十分なため作成は拒否されます。Auto Scaling に必要な OpenAPI 権限がない場合は、別のエラーが発生します: Forbidden.Unauthorized エラーが返され、「ユーザーは ESS の OpenAPI インターフェイスを完全に承認していません。承認してから、もう一度お試しください。」というメッセージが表示されます。この場合、必要な権限を付与して操作をリトライしてください。

    • スケーリンググループをクエリしてシナリオ 2 を検証する

      • environment:testteam:game1 のタグを持つスケーリンググループについては、タグでフィルターせずにクエリを実行しても、その情報を取得できます。

      • environment:testteam:game1 のタグが付いていないスケーリンググループ 1 以外のスケーリンググループをクエリした場合、クエリは結果を返しません。

      • スケーリンググループを指定せず、environment:testteam:game1 のタグのみを検索した場合、クエリはこれらのタグを持つすべてのスケーリンググループを返します。

    • スケーリンググループを削除してシナリオ 3 を検証する

      • スケーリンググループ 1 に environment:testteam:game1 のタグがある場合、そのスケーリンググループを削除できます。

      • スケーリンググループが environment:testteam:game1 のタグに関連付けられていない場合、または他のタグがある場合、スケーリンググループを削除する権限がないことを示すメッセージが表示されます。

関連ドキュメント