MENU
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
  1. ホーム
  2. AWS技術知見
  3. AWS CLIからセキュリティグループを作る

AWS CLIからセキュリティグループを作る

2022 8/18
AWS技術知見
2022年8月18日
目次

はじめに

AWSにはセキュリティグループという仮想ファイアウォールの機能があり、仮想ネットワークであるVPC内のインスタンスに設定することができます。
今回はそのセキュリティグループの概要と、AWS CLIからのセキュリティグループ作成を実践してみようと思います。

セキュリティグループとは

セキュリティグループは仮想ファイアウォールとしての機能を有しており、AWSのEC2インスタンスなどVPCに設定します。
インバウンドとアウトバウンド両方のトラフィック制御が可能です。
例えば、EC2インスタンスの作成時には、一つのEC2につき最大5つのセキュリティグループを適用することができます。

セキュリティグループの実践

セキュリティグループの挙動を確認するために、適当にAmazon LinuxのEC2を立ち上げます。
内容はなんでもOKですが、注目する点は「セキュリティグループの設定」の部分です。

上記の設定は、ポート22, 80, 443であれば世界中どこからでもアクセス可能(0.0.0.0/0)にしています。
特にポート22(SSH用)は、本番環境でこのような設定にはまずしないので注意してください。
この内容で作成するとsample-dmzというセキュリティグループが新たに作成されて、ここで作成しているEC2に紐付いている形になります。

この新たに作成されたEC2を以下のように編集します。

# 管理者権限へ
[ec2-user@ip-10-0-54-62 ~]$ sudo -i

# とりあえずアップデート
[root@ip-10-0-54-62 ~]yum update -y

# Webサーバーとしてapacheをインストール
[root@ip-10-0-54-62 ~]yum install httpd -y
# apache起動
[root@ip-10-0-54-62 ~]service httpd start
# Starting httpd: [ OK ]

# 自動再起動をONにしておく
[root@ip-10-0-54-62 ~]chkconfig httpd on

# サンプル用のhtmlを作成
[root@ip-10-0-54-62 ~]cd /var/www/html/
[root@ip-10-0-54-62 html]vim index.html
<html>

<h1>ようこそ!</h1>

</html>

ここまで完成したところで作成されたEC2のパブリックIPへアクセスすると、サンプルのHTMLが以下のように表示されるはずです。

インバウンドルールの変更

それでは、今回のsample-dmzセキュリティグループを編集してポート80の定義を消しましょう。

そしてすぐに再度、EC2のパブリックIPへアクセスするとどうなるかというと、

レスポンスが返ってこないことが確認できると思います。
ここでポイントとなるのは、セキュリティグループへ加えた変更は即時反映されるということです。

アウトバウンドルールの変更

上で行ったインバウンドルールの変更を元に戻し、再びアクセスできる状態にしておきます。
ここで少し興味深い設定変更をしてみるのですが、セキュリティグループのアウトバウンドルールを削除してみます。
アウトバウンドルールはデフォルトですべて許可されているのですが、このルールを削除するとどうなるでしょうか?

削除してからEC2のパブリックIPにアクセスしてみましょう。
何も変化がない(普通にアクセス可能)ことが確認できると思います。
これがセキュリティグループの特性の一つであり、ステートフルであると言われている理由です。
例えアウトバウンドルールが無くとも、インバウンドルールで許可されていれば自動的にアウトバウンドルールも許可されます。
この場合、インバウンドルールに依存しているので、ステートフルであると言えるわけです。
これはサブネットのネットワークACLとは異なる挙動なので注意が必要です。

複数セキュリティグループの適用

それでは、一つのEC2に複数のセキュリティグループを適用してみましょう。
適当にMySQL用のセキュリティグループを作ってみます。

既存のEC2に対して「ネットワーキング>セキュリティグループの変更」でセキュリティグループ変更画面を表示します。

そして、適用したいセキュリティグループを選択します。

これを適用後、EC2に関連付けられたセキュリティグループを確認すると、以下のように複数適用されているのが視覚的に確認できます。

AWS CLIからセキュリティグループを作る

セキュリティグループはAWS CLIからも簡単に作成することができます。

セキュリティグループの作成

作成にはcreate-security-groupコマンドを使います。
レスポンスには作成されたセキュリティグループのgroup-idが入っています。
これは編集を行う上で必要になるため覚えておきましょう。

aws ec2 create-security-group --group-name sample-dmz2 --description "Sample DMZ"
# {
# "GroupId": "sg-cfc91ecf"
# }

セキュリティグループの確認

上でできたセキュリティグループの内容を確認してみましょう。
describe-security-groupsで確認可能です。

aws ec2 describe-security-groups --group-id sg-cfc91ecf
# {
# "SecurityGroups": [
# {
# "IpPermissionsEgress": [],
# "Description": "Sample DMZ",
# "IpPermissions": [],
# "GroupName": "sample-dmz2",
# "OwnerId": "000000000000",
# "GroupId": "sg-cfc91ecf"
# }
# ]
# }

もちろんAWS管理コンソール上からも確認が可能です。

セキュリティグループのルール追加

では、セキュリティグループのルールを追加してみましょう。
試しにSSHのポート22を許可するルールを追加します。
これにはauthorize-security-group-ingressコマンドを使用します。

aws ec2 authorize-security-group-ingress --group-id sg-cfc91ecf --protocol tcp --port 22 --cidr 0.0.0.0/0

実行できているか確認すると以下のようになります。

aws ec2 describe-security-groups --group-id sg-cfc91ecf
# {
# "SecurityGroups": [
# {
# "IpPermissionsEgress": [],
# "Description": "Sample DMZ",
# "IpPermissions": [
# {
# "PrefixListIds": [],
# "FromPort": 22,
# "IpRanges": [
# {
# "CidrIp": "0.0.0.0/0"
# }
# ],
# "ToPort": 22,
# "IpProtocol": "tcp",
# "UserIdGroupPairs": [],
# "Ipv6Ranges": []
# }
# ],
# "GroupName": "sample-dmz2",
# "OwnerId": "000000000000",
# "GroupId": "sg-cfc91ecf"
# }
# ]
# }

管理コンソール上でも追加されているのが確認できます。

セキュリティグループの削除

作ったセキュリティグループもdelete-security-groupで簡単に削除することが可能です。

aws ec2 delete-security-group --group-id sg-cfc91ecf

まとめ

セキュリティグループの挙動についての把握は、AWSを利用する上で欠かせません。
役割を理解しつつ、煩雑にならないよう管理を行い、効率的に利用していく必要があります。

AWS技術知見
aws aws-cli ec2 security-group

関連記事

  • aws-route53
    AWS機能を網羅してみよう3.3 Route53編「実践」DNSフェイルオーバー
  • AWSのクラウドセキュリティ「責任共有モデル」とは?
  • ansible
    AWSのためのAnsible入門
  • aws-s3
    Amazon S3でGlacierを活用したコスト削減法
  • aws-route53
    AWS機能を網羅してみよう3.2 Route53編「実践」
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
  • aws-route53
    AWS機能を網羅してみよう3.1 Route53編「概要」
  • aws-waf
    AWS WAFでSQLインジェクションと特定URLをブロック
検索
clouddx003-low.pdf - 1.8MB
資料ダウンロードはこちら
人気記事
  • terraform
    Terraformと変数(variable)のお話
    Terraform
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
    AWS技術知見
  • 【実例20選】AWS導入企業、活用事例をご紹介
    AWS導入支援
  • AWS導入支援
    amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
    AWS導入支援
  • ansible
    AWSのためのAnsible入門
    AWS技術知見
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
  • aws-inspector
    [AWS入門] Amazon Inspectorでセキュリティチェックを行う
    AWS技術知見
新着記事
  • AWS運用代行企業5選!企業選びのポイントを解説
    AWS運用代行
  • AWS運用代行のサービス内容やメリットについて
    AWS運用代行
  • 10分でスタート!AWSの利用開始までを解説
    AWS導入支援
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
カテゴリー
  • AWS導入支援
  • AWS技術知見
    • Rancher
    • Terraform
  • AWS運用代行
  • WordPress
タグ一覧
AI (3) aws (25) aws-cli (3) CloudFormation (1) CloudSearch (3) DeepLearning (1) DNS (2) Docker (4) EBS最適化オプション (1) ec2 (7) ElasticBeanstalk (1) Geo Routing (1) Gitlab (1) HA (1) infrastructure-as-code (1) keypair (1) load-balancer (1) nginx (2) OpenAM (3) Rancher (8) Rekognition (2) Route53 (3) s3 (2) secrets (1) security-group (1) Terraform (6) terragrunt (2) tfvars (1) variable (1) vault (1) VPC (1) wordpress (3) アプリケーション (1) オンプレミス (2) クラウド (2) サインアップ (1) シングルサインオン (3) セキュリティ (1) セキュリティグループ (1) ネットワーク設計 (1) 人工知能 (2) 初心者 (1) 本番運用 (1) 画像認識 (3) 起動 (1)
アーカイブ
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2017年7月
  • 2017年6月
AWSエンジニア積極採用!
採用情報
フリーランスの求人情報!
テックブレイン

スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。

スーパーソフトウエアはRancherパートナーネットワークのコンサルティングパートナーです。

logo

カプセルクラウドはAWSクラウドのマネージドサービスです。AWSを安心かつ迅速に導入し、負荷分散・セキュリティ・DevOps・コスト削減など、クラウドサービスのメリットを活かした豊富なベストプラクティスをご提供いたします。

Contents

  • サービス
  • 導入支援
  • WordPress
  • 導入事例
  • ブログ
  • Q&A
  • お問い合せ
  • 資料ダウンロード

お問い合わせ

株式会社スーパーソフトウエア
東京 03-6721-7105
大阪 06-4707-6001
info-capsulecloud@tokyo.supersoftware.co.jp

  • プライバシーポリシー
  • 免責事項
  • 契約約款
  • 特商法に基づく表記
  • 会社情報
  • サイトマップ

© Supersoftware 2017. All rights reserved.

目次