アクセス制御にAWSネットワークACLとSGを使用していますか?

ニール

AWSでUbuntuEC2インスタンスを実行しています。セキュリティグループを使用する代わりに、常にネットワークACLを使用してポート22へのアクセスを制御してきました。

質問1:単一のEC2インスタンスのユースケースの場合、アクセス制御にNACLとSGを使用することの長所と短所はありますか?(ステートフルとステートレス、およびAWS VPCセキュリティドキュメントの他の違いに加えて。)

質問2:大規模な環境ではこれをどのように処理しますか?ベストプラクティスはありますか?(ある大企業がNACLを完全に開いており、SGですべてを管理していることを私は知っています。)

答えを見つけるために最初にしたことは、AWSのVPCセキュリティドキュメントを読むことでした:https//docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html

私のユースケースでは、アクセス制御のためのいくつかの方法があります。

オプション1:ポート80、443、およびエフェメラルポートへのNACL入力を0.0.0.0/0に制限します。IPアドレスごとにポート22アクセスを追加します。他のすべてのトラフィックを拒否します。(これは私がいつも行っていることです。)プライベートサブネットインスタンスが必要な場合は、SG経由のプライベートサブネットをパブリックサブネットの内部CIDRに制限します。

オプション2:NACLを世界に向けて開き、EC2インスタンスへのアクセス制御にSGを使用します。

オプション3:冗長にし、両方を使用します。

新しい場所(喫茶店)に行き、自分のインスタンスにSSHで接続したい場合は、AWSコンソールにログインし、新しいNACLルールを追加してIPアドレスポート22へのアクセスを許可します。NACLとSGの両方にルールを追加することは、マウスのクリックと入力の量が同じであるように見えます。

実際の環境作成に関しては、テラフォームを使用しています。リソースの設定はどちらのオプションを使用しても非常に簡単なので、賛否両論とは思いません。

NACLリソース:

  ingress {
    protocol   = 6
    rule_no    = 300
    action     = "allow"
    cidr_block = "0.0.0.0/0"
    from_port  = 80
    to_port    = 80
  }

SGリソース:

ingress {
    from_port = 80
    to_port = 80
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

NACLに見られる唯一の大きな利点は、複数のパブリックSGがある場合、コンソールを介して手動で処理すると、NACLのIPアドレスをブラックリストに登録するのが簡単になることです。

ラウール・サクセナ

インターネットゲートウェイ対NaCl対セキュリティグループ

上の図から、それは非常に明確です:

インターネットゲートウェイ> VPCレベルでインバウンドルールとアウトバウンドルールを制御します。その場合、VPC内のすべてのリソースが影響を受けます。すべてのEc2インスタンスが影響を受けます。

Nacl >サブネットレベルでインバウンドルールとアウトバウンドルールを制御します。その場合、サブネット内のすべてのリソースが影響を受けます。NACL1> Ec-1の場合、Ec-2とEc-3が影響を受け、NACL2の場合はEc2-4が影響を受けます。したがって、Naclはインターネットゲートウェイと比較してより制限的です。

セキュリティグループ>リソースレベルでインバウンドルールとアウトバウンドルールを制御します。その場合、セキュリティグループに接続されているすべてのリソースが影響を受けます。セキュリティグループ1の場合はEc2-1とEC2-2が影響を受け、セキュリティグループ2の場合はEc2-3が影響を受けます。

したがって、インターネットゲートウェイ、Nacl、およびセキュリティグループはすべて、さまざまなレベルでファイアウォールとして機能します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS-ネットワークACLを使用してSaaSサービスへのアウトバウンドトラフィックを制限する

分類Dev

AWS VPC: これらすべてのネットワーク ACL ルールをどのように取得したかを理解しようとしています

分類Dev

ネットワークの場所に基づいてアクセスを制御するためにIPをCIDR形式にフォーマットする方法

分類Dev

VirtualBox VMのアダプタが内部ネットワークに設定されている場合、ホストマシンのファイアウォールはゲストVMのポートへのアクセスを制御できますか?

分類Dev

Windows:ネットワークを使用できるアプリケーションを制御しますか?

分類Dev

このコードでセッターは何をしていますか?ES6:ゲッターとセッターを使用してオブジェクトへのアクセスを制御する

分類Dev

Webサーバーをセットアップしようとしていますが、外部ネットワークからアクセスできません

分類Dev

Javascript-並列にネットワークにアクセスするpromiseの数を制御する方法

分類Dev

セキュリティグループsg-xxxxxとサブネットsubnet-xxxxxは異なるネットワークに属しています

分類Dev

Ubuntuとvirtualboxの間にネットワークをセットアップしようとしています

分類Dev

symfony 2のアクセス制御を使用してローカルサブネットへのアクセスのみを許可するにはどうすればよいですか?

分類Dev

インターネットにアクセスできる2つのネットワークに接続している場合、インターネットを使用するとどうなりますか?

分類Dev

Ubuntuでさまざまなことに使用されるネットワークを制御するにはどうすればよいですか?

分類Dev

aclを使用してredispubsubの特定のトピックへのアクセスを制限するにはどうすればよいですか?

分類Dev

ワークブックにアクセスし、名前と値のセットを使用して新しいシートを作成します

分類Dev

Python用のBigQueryAPIクライアントライブラリを使用しているときにネットワークにアクセスできません

分類Dev

バッチを使用してネットワークアダプタを制御する

分類Dev

子ネットワークがインターネットアクセスに親ネットワークを使用することを許可します-ただし、親ネットワーククライアントは表示しません

分類Dev

子ネットワークがインターネットアクセスに親ネットワークを使用することを許可します-ただし、親ネットワーククライアントは表示しません

分類Dev

VPNを使用して仕事に接続しているときに、ホームネットワークプリンターにアクセスする

分類Dev

UbuntuからC#を使用してネットワークパスにアクセスする

分類Dev

VPNを使用して基盤となるネットワークにアクセスする

分類Dev

3gモデムを使用してafuerからネットワークにアクセスする

分類Dev

docker-composeを使用してローカルホストとdockerネットワークにアクセスします

分類Dev

デバイスは、以前に使用したSSIDとパスワードを使用して新しいネットワークに接続できますか?

分類Dev

CSSを使用して、入力にテキストが含まれているかどうかを検出します-アクセスしていて制御していないページで?

分類Dev

仮想ネットワークを使用して、AppServiceからAzureSql Databaseへのアクセスを保護するにはどうすればよいですか?

分類Dev

私が制御していない別のネットワーク内にルーターを配置する場合はどうすればよいですか?

分類Dev

Pythonを使用して、Windowsネットワーク上の共有フォルダーにアクセスするにはどうすればよいですか?

Related 関連記事

  1. 1

    AWS-ネットワークACLを使用してSaaSサービスへのアウトバウンドトラフィックを制限する

  2. 2

    AWS VPC: これらすべてのネットワーク ACL ルールをどのように取得したかを理解しようとしています

  3. 3

    ネットワークの場所に基づいてアクセスを制御するためにIPをCIDR形式にフォーマットする方法

  4. 4

    VirtualBox VMのアダプタが内部ネットワークに設定されている場合、ホストマシンのファイアウォールはゲストVMのポートへのアクセスを制御できますか?

  5. 5

    Windows:ネットワークを使用できるアプリケーションを制御しますか?

  6. 6

    このコードでセッターは何をしていますか?ES6:ゲッターとセッターを使用してオブジェクトへのアクセスを制御する

  7. 7

    Webサーバーをセットアップしようとしていますが、外部ネットワークからアクセスできません

  8. 8

    Javascript-並列にネットワークにアクセスするpromiseの数を制御する方法

  9. 9

    セキュリティグループsg-xxxxxとサブネットsubnet-xxxxxは異なるネットワークに属しています

  10. 10

    Ubuntuとvirtualboxの間にネットワークをセットアップしようとしています

  11. 11

    symfony 2のアクセス制御を使用してローカルサブネットへのアクセスのみを許可するにはどうすればよいですか?

  12. 12

    インターネットにアクセスできる2つのネットワークに接続している場合、インターネットを使用するとどうなりますか?

  13. 13

    Ubuntuでさまざまなことに使用されるネットワークを制御するにはどうすればよいですか?

  14. 14

    aclを使用してredispubsubの特定のトピックへのアクセスを制限するにはどうすればよいですか?

  15. 15

    ワークブックにアクセスし、名前と値のセットを使用して新しいシートを作成します

  16. 16

    Python用のBigQueryAPIクライアントライブラリを使用しているときにネットワークにアクセスできません

  17. 17

    バッチを使用してネットワークアダプタを制御する

  18. 18

    子ネットワークがインターネットアクセスに親ネットワークを使用することを許可します-ただし、親ネットワーククライアントは表示しません

  19. 19

    子ネットワークがインターネットアクセスに親ネットワークを使用することを許可します-ただし、親ネットワーククライアントは表示しません

  20. 20

    VPNを使用して仕事に接続しているときに、ホームネットワークプリンターにアクセスする

  21. 21

    UbuntuからC#を使用してネットワークパスにアクセスする

  22. 22

    VPNを使用して基盤となるネットワークにアクセスする

  23. 23

    3gモデムを使用してafuerからネットワークにアクセスする

  24. 24

    docker-composeを使用してローカルホストとdockerネットワークにアクセスします

  25. 25

    デバイスは、以前に使用したSSIDとパスワードを使用して新しいネットワークに接続できますか?

  26. 26

    CSSを使用して、入力にテキストが含まれているかどうかを検出します-アクセスしていて制御していないページで?

  27. 27

    仮想ネットワークを使用して、AppServiceからAzureSql Databaseへのアクセスを保護するにはどうすればよいですか?

  28. 28

    私が制御していない別のネットワーク内にルーターを配置する場合はどうすればよいですか?

  29. 29

    Pythonを使用して、Windowsネットワーク上の共有フォルダーにアクセスするにはどうすればよいですか?

ホットタグ

アーカイブ