地形を用いたVPCS+S 3展開


この記事では、あなたの組織のプライベートAWS - S 3バケツ生産ワークロードへのアクセスを確実に制限する方法を学びます.
ケース
組織コストを減らすことを目的とするセキュリティ計画の一環として、あなたのマネージャーはあなたの個人的なVPCから個人的なS 3バケットへの敏感なデータフローを再構築し、S 3バケットからVPCに戻すことについて話します.
現在のインフラストラクチャレイアウト
現在のインフラストラクチャはインターネット上でトラフィックを許容します.そして、これはファイアウォール規則を備えた多くの構成を必要とします.データ転送コストはNatGatewayデバイスの使用により計画されているよりも高い.SSLとTLSを用いた穀物アクセス制御は過剰で複雑です.最後に、領域の向こう側の複数のリソースは、増加した待ち時間をもたらします.
あなたのマネージャーは
あなたはこの変化を緩和するために何をすることができますが、同時に私たちのビジネスのために必要なことを満たす安全に実行し、最小限のコストで?
すぐに、このユースケースのVPCエンドポイントを使用する機会を見てください.しかし、上記の質問に答える前にまず、次のことを考えてみましょう.
VPCエンドポイントは何か知ってる?
VPCエンドポイントは、水平にスケールして、非常に利用可能なVPCコンポーネントである冗長な仮想装置です.
現在、VPCのエンドポイント(日付に知られている)の3種類があり、それぞれがサポートされているサービスに応じて使用されます.
  • インターフェース終点
  • ゲートウェイ負荷平衡器終点
  • のゲートウェイ終点
  • VPCEとは何かを理解する必要があります.
    VPCEを使用する場合は、インターネットゲートウェイまたはNATゲートウェイデバイスを使用する必要がなくなります.VPCEはAWSバックボーンネットワークを使用します.この記事では、ゲートウェイのエンドポイントに焦点を当てます.
    どのようにVPCゲートウェイのエンドポイントは動作しますか?
    VPCゲートウェイ終点は、そのようなS 3とDynamoDBのような公共のリソースで個人的に、そして、確実に通信するのに用いられます.
    このシナリオをもう少し深く分析しましょう.あなたがあなたのVPCの中でホストされる複数のサービスを持っていて、あなたがこれらの公共サービスへのアクセスを与えたいということを想像してください.さて、この記事の最後にVPCゲートウェイのエンドポイントで経験するように、すべての不要な構成を非常に効果的に回避することができます.
    S 3バケットを使ってVPCゲートウェイのエンドポイント接続を設定する必要があります.
    まず最初に、1から2のサブネットとルートテーブルを持つVPCが必要になります.次に、S 3バケットと接続するために地域ごとにVPCEタイプゲートウェイ終点を作成する必要があります.接続はサブネットレベルで起こります、接頭語リスト(PL - XXXXXXX)はあなたのサブネット(s)に関連したルートテーブルに付けられます、そして、AWS接頭語リスト名は「com . amazonaws . region . service」という形を使用します.VPCEについて言及する1つの重要な事実は、AWSがあなたの代わりに接頭語リストを更新するということです.複数のファイアウォールを更新する面倒な仕事を覚えていますか?もう済んだ😊
    ルートテーブルの設定例

    これは間違いなく接続を容易にするが、どのように私はこれを完全に安全にすることができますokを考えている可能性がありますか?
    VPCのエンドポイントは、デフォルトでボックスのエンドポイントポリシーを提供しています.このオプションは、我々は必ずしも望んでいない我々のアカウント内の各S 3のバケットに完全に接続できます.幸いにも、独自の堅牢なカスタムポリシーを作成することができます.下記の例を参照ください.
    この例では、カスタムポリシーすべての要求やトラフィックをVPCの外に拒否されます
    resource "aws_s3_bucket_policy" "allow_access_to_specific_vpce_only" {
      vpc_endpoint_id = aws_vpc_endpoint.gw_endpoint.id
      policy = jsonencode({
        "Version": "2012-10-17",
        "Statement": [
            {
            "Sid": "Access-to-specific-VPCE-only",
            "Principal": "*",
            "Action": "s3:*",
            "Effect": "Deny",
            "Resource": ["${aws_s3_bucket.work_load_bucket.arn}",
                        "${aws_s3_bucket.work_load_bucket.arn}/*"],
            "Condition": {
                "StringNotEquals": {
                "aws:SourceVpce": "${aws_vpc.vpc_end_point.id}"
                }
            }
        }
        ]
      })
    }
    
    この場合、ゲートウェイの終点は完璧なフィット感を持っているようですが、いくつかの現在の制限があります(また、これまで知られています).
  • エンドポイントは同じ地域内でのみサポートされます.VPCと異なる領域のサービスの間にエンドポイントを作成することはできません.
  • エンドポイントはIPv 4トラフィックのみをサポートします.
  • エンドポイントを1つのVPCから別のサービスに転送することはできません.
  • あなたはVPCごとに作成できるエンドポイントの数にクォータを持っています.
  • エンドポイント接続はVPCから拡張できません.
  • Documentation here
    VPCE線図

    データ転送コスト

    credits to The Open Guide to Amazon Web Services
    結論
    私は、この記事があなたにVPC終点とその制限の力のより良い理解を与えたことを望みます.今すぐterraformを使用して展開いくつかの実際の仕事を入手!
    このプロジェクトで使用されたTerraformの関数、引数および式
    provider
    variables
    resources
    Find the Terraform repo and directions for this project here