やりたいこと
awscliを利用し、特定のIPアドレスからの通信を拒否する。尚、通信はサブネットをまたぐ通信とする。
環境情報
$ python3 --version Python 3.8.16
やり方
サブネットに紐づくNetwork ACLのIDを利用し、以下のように設定を行う。(インバウンドであれば--ingress
)
$ aws ec2 replace-network-acl-entry --egress --network-acl-id xx --rule-number 10 --protocol -1 --rule-action deny --cidr-block 10.xx.xx.xx/32
尚、設定を戻して許可を行なう場合は以下のように--rule-action
をallow
とする。
$ aws ec2 replace-network-acl-entry --egress --network-acl-id xx --rule-number 10 --protocol -1 --rule-action allow --cidr-block 10.xx.xx.xx/32
補足
Network ACLのIDを引数にして設定情報を確認すると
$ aws ec2 describe-network-acls --network-acl-ids acl-xx
JSON形式で表示されます。Protocolの-1は「全ての通信」を指します。
{ "NetworkAcls": [ { "Associations": ..., "Entries": [ { "CidrBlock": "10.X.X.X/32", "Egress": true, "Protocol": "-1", "RuleAction": "allow", "RuleNumber": 10 },...
以上、ご参考になれば幸いです。