swastudy’s diary

AWSに関することは楽しみに書いてます。

VPCエンドポイントのセキュリティ設定

以下は、EC2がプライベートサブネット内でAmazon SQSにVPCエンドポイントを介してアクセスする場合のセキュリティの設定例です。

① EC2

EC2 IAMロールを設定し、Amazon SQSのAPI呼び出しを実行できるポリシーを付与します。

② EC2セキュリティグループ

EC2セキュリティグループのルールを設定して、VPCインターフェイスエンドポイントからのインバウンドトラフィックを許可します。

VPCインターフェイスエンドポイントセキュリティグループ

セキュリティグループのルールを使用して、VPCエンドポイントへのアクセスを制限します。セキュリティグループのルールでは、VPC内のプライベートサブネットからのインバウンドトラフィックのみを許可します。

VPCインターフェイスエンドポイント

特定のSQSに対するエンドポイントの使用を許可し、AWSアカウントIDからのアクセスのみを許可します。

{
   "Statement": [{
      "Action": ["sqs:ReceiveMessage","sqs:SendMessage","sqs:DeleteMessage"],
      "Effect": "Allow",
      "Resource": "具体的SQSのARN",
      "Principal": { "AWS": "具体的AWS Account ID" }
   }]
}

Amazon SQS

SQSのポリシーを使用して、VPCエンドポイントからの送信、メッセージの削除などのアクションのみを許可します。

{
  "Version": "2012-10-17",
  "Id": "sqs-queue-resource-policy",
  "Statement": [
    {
      "Sid": "all-messages-sent-from-interface-vpc-endpoint",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "sqs:SendMessage",
      "Resource": "具体的SQSのARN",
      "Condition": {
        "StringEquals": {
          "aws:sourceVpce": "具体的 VPC  Endpoint ID"
        }
      }
    }
  ]
}