以下は、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" } } } ] }