AWS Config ルールの vpc-sg-open-only-to-authorized-ports および Systems Manager Automation ドキュメントの AWS-DisablePublicAccessForSecurityGroup を使用して、エラー「InvalidPermission.NotFound」をトラブルシューティングするにはどうすればよいですか?

最終更新日: 2020 年 8 月 12 日

SSH ポートと RDP ポートを無効にするため、AWS Systems Manager Automation ドキュメントの AWS-DisablePublicAccessForSecurityGroup を作成しました。しかし、AWS Config ルールの vpc-sg-open-only-to-authorized-ports では、自動修復が失敗します。以下のようなエラーが表示されます。

「An error occurred (InvalidPermission.NotFound) when calling the RevokeSecurityGroupIngress operation: The specified rule does not exist in this security group.」(RevokeSecurityGroupIngress オペレーションを呼び出すときにエラーが発生しました (InvalidPermission.NotFound): 指定されたルールはこのセキュリティグループに存在しません。)  

簡単な説明

AWS Config ルールは、セキュリティグループが 0.0.0.0/0 へのインバウンド TCP または UDP トラフィックを許可することをチェックします。たとえば、TCP ポート 443 および 1020-1025 に 0.0.0.0/0 へのアクセスを許可するには、AWS Config ルールパラメータでポートを指定します。SSM ドキュメントの AWS-DisablePublicAccessForSecurityGroup は、すべての IP アドレス (0.0.0.0/0) または IpAddressToBlock パラメータを使用して指定された IPv4 アドレスに対して開かれるデフォルトの SSH 22 ポートおよび RDP 3389 ポートに制限されます。

解決方法

RevokeSecurityGroupIngress API アクションを使用したクライアントエラー InvalidPermission.NotFound は、ターゲットセキュリティグループにインバウンドルールがないか、ターゲットセキュリティグループがデフォルトの Amazon Virtual Private Cloud (Amazon VPC) に存在しないことを意味します。

重要: 開始する前に、AWS コマンドラインインターフェイス (AWS CLI) がインストールされ、設定済みであることを確認してください。

エラーメッセージを確認するには、次のような AWS CLI コマンド describe-remediation-execution-status を実行します。

aws configservice describe-remediation-execution-status --config-rule-name vpc-sg-open-only-to-authorized-ports --region af-south-1 --resource-keys resourceType=AWS::EC2::SecurityGroup,resourceId=sg-1234567891234567891

セキュリティグループのインバウンドルールでは、次のいずれかのパターンを使用して、開いているポートを指定する必要があります。

0.0.0.0/0

::/0

SSH or RDP port + 0.0.0.0/0

SSH or RDP port + ::/0

22 および 3389 などの他のポートの自動修復を設定するには、カスタム SSM ドキュメントを使用してプロセスを自動化します。手順については、Systems Manager ドキュメントを作成するを参照してください。