web-dev-qa-db-ja.com

EC2VPCのNATインスタンスでS3へのoubound-from-private-subnetトラフィックをホワイトリストに登録するにはどうすればよいですか?

AWSVPCのプライバシーに準拠した高セキュリティのデプロイオプションを調査しています。

NATインスタンスでプライベートサブネットからのアウトバウンドトラフィックを引き締める方法を探しています。たとえば、NATの背後からのアウトバウンドトラフィックを制限するにはどうすればよいですか? = AWS S3への呼び出しのみを許可しますか?AnsibleとPackerによって駆動されるShorewallを使用してカスタムNAT AMIを作成することを計画しています。

S3 IPアドレスの確実なリストがないようであるため、IPによるホワイトリストが出ています。プロトコルによるホワイトリストはこれには十分ではありません。エンドポイントは、少なくともAWSのAPIスペースに制限する必要があります。ホスト名によるホワイトリストは、最初のDNSクエリの最初のIPを超えて機能することはありません。

オプションは次のようです:

  1. IPのリストをまとめてみてください。
  2. AWSにリストを依頼してください。
  3. たぶん、HAProxyなどを使用してS3へのリバースプロキシを実行し、従来のNATを完全にスキップします。プライベートサブネット内から必要なアウトバウンドトラフィックはHTTP(S)ベースだけだと仮定します。これは機能し、S3ホスト名の制限を行うことができますか?パッケージの更新やNTP)は、パブリックサブネットにあるステージングポイント(インスタンス)を使用して行うことができます。仮定します。

私のニーズをさらに明確にしたい場合はお知らせください。

EC2 VPCのプライベートサブネット内からS3(および依存関係)へのトラフィックのみを許可する方法を知っていますか?

ありがとう、ジョシュア

P.S.そうそう..それが高可用性であることができれば、それも素晴らしいでしょう。 1つのリージョンの3つのゾーンのそれぞれに1つの「NAT」または「NATのような」インスタンスを計画しています。 Autoscalingグループを使用して、これら3つのインスタンスを存続させることを計画していましたが、別のアイデアがあるかもしれません。当初、私は3つのENIを使用する予定でした。AZごとに1つで、NAT用にCorosync&Pacemakerを介してフロートします。私は、ENIにルーティングすることにより、ゾーンでのNAT障害時に、ルートテーブルを更新する必要性を回避したいと考えていました。

/ endblabbing

関連リンク:

http://www.shorewall.net/4.2/FAQ.htm#faq39NATなしのEC2 VPC?

3
josh-wrale

NATインスタンスでS3トラフィックをホワイトリストに登録する代わりに、S3のVPCエンドポイントを設定することをお勧めします。

これにより、EC2ノードはNATを経由せずに、VPCプライベートネットワーク上で直接S3にアクセスできます。

S3で使用されるIPのリストが引き続き必要な場合は、AWS CLIコマンドを使用できます describe-prefix-lists

aws ec2 describe-prefix-lists

次のような出力が得られます

{
    "PrefixLists": [
        {
            "PrefixListName": "com.amazonaws.eu-west-1.s3", 
            "Cidrs": [
                "54.231.128.0/19"
            ], 
            "PrefixListId": "pl-6da54004"
        }
    ]
}

このリストは、AWSCLIで使用されるリージョン用です。私のサンプルは、eu-west-1の現在の出力を示しています。--regionパラメータを渡すことで、別の領域を指定できます。 aws --region us-east-1 ec2 describe-prefix-lists

ただし、サービスのIP範囲は随時変更される可能性があることに注意してください。

2
markusk