AWSセキュリティグループにコマンドでIPアドレスを追加する方法


AWSのEC2インスタンスに関連するセキュリティグループにIPアドレスを追加する作業は、ネットワークセキュリティを管理する上で非常に重要です。この作業を手動で行うのは大変な場合があるため、AWS CLI(コマンドラインインターフェイス)を使って効率よく実行する方法をご紹介します。また、EC2インスタンスにセキュリティグループ編集用のIAMロールを付与する方法も合わせて解説します。

目次

セキュリティグループにIPアドレスを追加する

AWS EC2インスタンスのセキュリティグループに、特定のIPアドレスを追加するためには、AWS CLIを使ってコマンドを実行することができます。ここでは、シェルスクリプト(Shell Script)を使用して、複数のIPアドレスを一度に追加する方法を説明します。

ステップ1: AWS CLIのインストールと設定

AWS CLIがインストールされていない場合、まずインストールしましょう。インストール方法はこちらを参照してください。

AWS CLIがインストールされたら、以下のコマンドで設定を行います。

aws configure

ここで、アクセスキー、シークレットキー、リージョン、出力形式を設定します。

ステップ2: IPアドレスのリストを用意

次に、セキュリティグループに追加するIPアドレス(CIDR形式)のリストを準備します。例えば、次のようなIPアドレスのリストです。

IP_LIST=("10.0.0.0/8" "192.168.0.0/24")

ステップ3: シェルスクリプトを作成

次に、このIPリストを使用して、各IPアドレスをセキュリティグループに追加するシェルスクリプトを作成します。

#!/bin/bash

# セキュリティグループID、リージョン、ポート番号を設定
SECURITY_GROUP_ID="<セキュリティグループID>"
PORT="<ポート番号>"
REGION="<リージョン>"

# IPアドレスリスト(CIDR形式)
IP_LIST=("10.0.0.0/8" "192.168.0.0/24")

# IPリストをセキュリティグループに追加
for IP in "${IP_LIST[@]}"; do
  aws ec2 authorize-security-group-ingress --region "$REGION" --group-id "$SECURITY_GROUP_ID" --protocol tcp --port "$PORT" --cidr "$IP"
  echo "Added $IP to Security Group $SECURITY_GROUP_ID on port $PORT"
done

このスクリプトは、SECURITY_GROUP_ID に指定したセキュリティグループに、リストに含まれるIPアドレスを順番に追加します。ポート番号やリージョンも必要に応じて設定します。

PowerShellの場合は

# セキュリティグループID、リージョン、ポート番号を設定
$securityGroupId = "<セキュリティグループID>"
$port = "<ポート番号>"
$region = "<リージョン>"

# IPアドレスリスト(CIDR形式)
$ipList = @("10.0.0.0/8" "192.168.0.0/24")

# IPリストをセキュリティグループに追加
foreach ($ip in $ipList) {
aws ec2 authorize-security-group-ingress --region $region --group-id $securityGroupId --protocol tcp --port $port --cidr $ip
Write-Host "Added $ip to Security Group $securityGroupId on port $port"
}

ステップ4: スクリプトを実行

スクリプトを実行するために、まずファイルに保存し、実行権限を与えます。

chmod +x add_ips_to_security_group.sh
./add_ips_to_security_group.sh

もしくはPowerShellだと

PowerShellを管理者として開き

.\add_ips_to_security_group.ps1

これで、指定したIPアドレスがセキュリティグループに追加されます。


aws configureを実行せずにEC2インスタンスにIAMロールをアタッチしてaws ec2コマンドを実行させる方法

EC2インスタンスがセキュリティグループの変更を行えるようにするためには、適切なIAMロールをインスタンスにアタッチする必要があります。以下の手順で、EC2インスタンスにセキュリティグループを編集できるIAMロールを付与する方法を解説します。

ステップ1: IAMポリシーを作成

まず、EC2インスタンスがセキュリティグループを変更するための権限を持つポリシーを作成します。ポリシーを作成する際に、セキュリティグループの追加、削除などを行うためのアクションを許可します。

以下は、セキュリティグループに関連するポリシーの例です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeSecurityGroups",
        "ec2:ModifySecurityGroups",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress"
      ],
      "Resource": "*"
    }
  ]
}

このポリシーでは、セキュリティグループの情報を取得したり、ルールを変更したりすることができます。

ステップ2: IAMロールを作成

次に、このポリシーを使用してIAMロールを作成します。

  1. IAMコンソールにログインし、「ロール」を選択します。
  2. ロールの作成」を選択し、「EC2」を選びます。
  3. 作成したポリシーを選択し、ロールに名前を付けて作成します。

ステップ3: ロールをEC2インスタンスにアタッチ

作成したIAMロールをEC2インスタンスにアタッチすることで、そのインスタンスがセキュリティグループを変更できるようになります。

  1. EC2ダッシュボードに移動し、対象のインスタンスを選択します。
  2. Actions」 → 「Security」 → 「Modify IAM Role」を選択します。
  3. 作成したIAMロールを選択して、インスタンスにアタッチします。

これで、インスタンスにセキュリティグループを変更する権限が付与されました。


まとめ

AWSのEC2インスタンスに関連するセキュリティグループにIPアドレスを追加する作業は、AWS CLIとシェルスクリプトを使うことで効率よく行えます。また、EC2インスタンスがセキュリティグループを変更するためには、適切なIAMロールをアタッチする必要があります。これらの手順を実行することで、より効率的で安全なネットワーク管理が実現できます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です