如何限制AWS SSM端口转发开放端口?修改SSM文档遇格式错误
解决AWS SSM端口转发端口限制的JSON格式错误
要限制AWS SSM端口转发仅允许3142、4200、121、1300这4个端口,克隆官方SSM文档AWS-StartPortForwardingSession后,尝试将allowedPattern从全端口正则改成指定端口数组时,触发错误:
InvalidDocumentContent: JSON not well-formed. at Line: 15, Column: 25
错误原因
SSM文档的allowedPattern字段要求是正则表达式字符串,不能使用JSON数组格式。直接用数组赋值会违反文档的JSON schema规范,导致格式校验失败。
正确修改方法
将需要允许的端口组合成正则表达式,格式为^(3142|4200|121|1300)$,该正则会严格匹配指定的4个端口,拒绝其他端口值。
修改后的完整SSM文档
{"schemaVersion":"1.0","description":"Document to start port forwarding session over Session Manager","sessionType":"Port","parameters":{"portNumber":{"type":"String","description":"(Optional) Port number of the server on the instance","allowedPattern":"^(3142|4200|121|1300)$","default": "80"},"localPortNumber":{"type":"String","description":"(Optional) Port number on local machine to forward traffic to. An open port is chosen at run-time if not provided","allowedPattern":"^(3142|4200|121|1300)$","default": "0"}},"properties":{"portNumber":"{{ portNumber }}","type":"LocalPortForwarding","localPortNumber":"{{ localPortNumber }}"}}
注意:如果只需要限制远程实例端口(
portNumber)或本地转发端口(localPortNumber)中的一个,单独修改对应字段的allowedPattern即可。
内容的提问来源于stack exchange,提问作者nj_Graffiti
相关产品推荐
相关产品推荐

