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

Elastic Compute Service:RAM ユーザーによるリスクの高いセキュリティグループ ルールの作成を禁止

最終更新日:May 16, 2026

条件キーを含むカスタム RAM ポリシーをアタッチして、RAM ユーザーによるリスクの高いセキュリティグループ ルールの作成や、デフォルト セキュリティグループの使用を制限します。

背景情報

セキュリティグループは、クラウドにおける主要な防御層および分離境界です。ルールの設定を誤ると、機密性の高いポート (22、3389、80、8080、443) を開いたり、0.0.0.0/0 を承認オブジェクトとして使用したりすることで、関連付けられたリソース (ECS インスタンスや ApsaraDB RDS インスタンスなど) が攻撃にさらされます。

RAM ユーザー全体で一貫したセキュリティ ベースラインを適用するには、リスクの高いセキュリティグループ ルールの作成または参照を禁止する RAM ポリシーを設定します。

RAM カスタムポリシーは、リソース、オペレーション、および条件を正確に記述します。条件キーを使用して、リスクの高いルールを拒否したり、承認されたルールのみを許可したりします。詳細については、「ポリシー要素」の条件セクションをご参照ください。

仕組み

RAM 条件キーは、2 つの方法でリスクの高いセキュリティグループ ルールを制限します:

  • 特定の IP アドレスまたはプロトコルを含むセキュリティグループ ルールを拒否し、承認されたルールのみを許可します。

  • ECS インスタンスの作成時にデフォルト セキュリティグループが使用されるのを禁止します。

説明

デフォルト セキュリティグループには、機密性の高いルールが含まれています。詳細については、「デフォルト セキュリティグループ」をご参照ください。

次の表に、利用可能な RAM 条件キーを一覧表示します。

条件キー

データ型

説明

ecs:SecurityGroupIpProtocols

文字列

TCP や ICMP などのトランスポート層プロトコル。

ecs:SecurityGroupSourceCidrIps

文字列

ソース IPv4 CIDR ブロックまたは IPv4 アドレス。

ecs:NotSpecifySecurityGroupId

ブール値

セキュリティグループ ID が指定されているかどうか。

説明
  • 条件キーが配列の場合、セキュリティグループ ルールが配列内のいずれかの値と一致すると、条件が満たされます。

  • 同じ条件で 2 つの条件キーが指定されている場合、セキュリティグループ ルールが両方の条件キーに一致すると、条件が満たされます。

操作手順

  1. RAM 条件キーを使用してカスタムポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。

    このセクションと「結果の検証」セクションでは、「例 2:承認オブジェクトとして 0.0.0.0/0 を含むセキュリティグループ ルールの作成を RAM ユーザーに禁止するカスタムポリシー」のカスタムポリシーを例として使用します。

    説明

    カスタムポリシーの例については、「カスタムポリシーの例」セクションをご参照ください。

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

結果の検証

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

  2. カスタムポリシーが有効になっていることを確認します:

    1. ターゲット リージョンにカスタム セキュリティグループが存在しないことを確認してから、デフォルト セキュリティグループを使用して ECS インスタンスを作成します。詳細については、「「カスタム起動」タブでのインスタンス作成」をご参照ください。

      説明

      選択したリージョンにカスタム セキュリティグループが存在しない場合、デフォルト セキュリティグループが自動的に作成されます。

      ECS インスタンスの購入ページで次のエラーが表示された場合、RAM ユーザーはデフォルト セキュリティグループの使用を禁止されています。

      image

    2. セキュリティグループを選択し、[承認オブジェクト] (ソース) を 0.0.0.0/0 に設定してルールを作成します。詳細については、「セキュリティグループ ルールの追加」をご参照ください。

      ルールの作成に失敗し、次のエラーが表示された場合、RAM ユーザーは[承認オブジェクト]0.0.0.0/0 に設定したルールの作成を禁止されています。

      image

カスタムポリシーの例

例 1:RAM ユーザーに特定の承認オブジェクトを含むセキュリティグループ ルールの作成のみを許可するカスタムポリシー

  • RAM ユーザーが、[承認オブジェクト] (ソース) として 140.205.XX.XX/27 または 140.205.XX.XX/28 を持つセキュリティグループ ルールのみを作成できるようにし、ECS インスタンスの作成時にデフォルト セキュリティグループの使用を禁止するカスタムポリシー:

    説明

    要件に応じて、XX を実際の値に置き換えてください。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Deny",
          "Action": [
            "ecs:AuthorizeSecurityGroup",
            "ecs:ConfigureSecurityGroupPermissions",
            "ecs:ModifySecurityGroupRule"
          ],
          "Resource": "*",
          "Condition": {
            "ForAnyValue:StringNotLike": {
              "ecs:SecurityGroupSourceCidrIps": [
                "140.205.XX.XX/27",
                "140.205.XX.XX/28"
              ]
            }
          }
        },
        {
          "Effect": "Deny",
          "Action": [
            "ecs:CreateInstance",
            "ecs:RunInstances"
          ],
          "Resource": "*",
          "Condition": {
            "Bool": {
              "ecs:NotSpecifySecurityGroupId": [
                "true"
              ]
            }
          }
        }
      ]
    }
  • RAM ユーザーに、[承認オブジェクト] (ソース) が 140.205.XX.XX/27 である TCP のセキュリティグループルールのみの作成を許可し、ECS インスタンスの作成時にデフォルトセキュリティグループの使用を禁止するカスタムポリシー:[]

    説明

    要件に応じて、XX を実際の値に置き換えてください。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Deny",
          "Action": [
            "ecs:AuthorizeSecurityGroup",
            "ecs:ConfigureSecurityGroupPermissions",
            "ecs:ModifySecurityGroupRule"
          ],
          "Resource": "*",
          "Condition": {
            "ForAnyValue:StringNotLike": {
              "ecs:SecurityGroupSourceCidrIps": [
                "140.205.XX.XX/27"
              ]
            }
          }
        },
        {
           "Effect": "Deny",
           "Action": [
             "ecs:AuthorizeSecurityGroup",
             "ecs:ConfigureSecurityGroupPermissions",
             "ecs:ModifySecurityGroupRule"
            ],
            "Resource": "*",
            "Condition": {
              "ForAnyValue:StringNotLike": {
                "ecs:SecurityGroupIpProtocols": [
                  "TCP"
                ]
              }
            }
          },
          {
            "Effect": "Deny",
            "Action": [
              "ecs:CreateInstance",
              "ecs:RunInstances"
            ],
            "Resource": "*",
            "Condition": {
              "Bool": {
                "ecs:NotSpecifySecurityGroupId": [
                  "true"
                ]
              }
            }
          }
       ]
    }

例 2:承認オブジェクトとして 0.0.0.0/0 を含むセキュリティグループ ルールの作成を RAM ユーザーに禁止するカスタムポリシー

RAM ユーザーが、[承認オブジェクト] (ソース) として 0.0.0.0/0 を持つセキュリティグループ ルールの作成を禁止し、ECS インスタンスの作成時にデフォルト セキュリティグループの使用を禁止するカスタムポリシー:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ecs:AuthorizeSecurityGroup",
        "ecs:ConfigureSecurityGroupPermissions",
        "ecs:ModifySecurityGroupRule"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "ecs:SecurityGroupSourceCidrIps": [
            "0.0.0.0/0"
          ]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "ecs:CreateInstance",
        "ecs:RunInstances"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "ecs:NotSpecifySecurityGroupId": [
            "true"
          ]
        }
      }
    }
  ]
}

関連ドキュメント