방화벽 규칙을 여러 Amazon Lightsail 인스턴스에 복사하려면 어떻게 해야 합니까?
간략한 설명
방화벽 규칙은 Lightsail 인스턴스마다 다릅니다. 여러 인스턴스에 동일한 규칙을 적용하려면 각 인스턴스에 대한 규칙을 편집해야 합니다. AWS Command Line Interface(AWS CLI) 및 API 호출을 사용하여 현재 방화벽 규칙을 검색한 다음 .json 파일로 출력할 수 있습니다. .json 파일을 사용하여 모든 규칙을 다른 Lightsail 인스턴스로 복사할 수 있습니다.
참고: 다음 해결 단계를 수행하려면 AWS CLI를 설치하고 구성해야 합니다. AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요. AWS CloudShell을 사용하여 이러한 단계를 수행할 수도 있습니다.
해결 방법
1. 다음 명령을 실행하여 기존 인스턴스에서 복사할 현재 구성을 검색한 후 .json 파일로 출력합니다. 이렇게 하면 방화벽 구성이 포함된 .json 파일이 생성됩니다. 다음 예제에서는SourceInstanceName 및 RegionName을 인스턴스에 대한 올바른 정보로 바꿉니다.
$ aws lightsail get-instance-port-states --instance-name SourceInstanceName --region RegionName | grep -v "state" > firewall.json
2. 이 예에서는.json 파일인 firewall.json을 연 다음 **‘portStates’**를 **‘portInfos’**로 바꿉니다. 이 파라미터는 다음 예제와 같이 파일의 시작 부분에 있습니다.
{
"portStates": [
{
"fromPort": 80,
"toPort": 80,
"protocol": "tcp",
"cidrs": [
"0.0.0.0/0"
],
"cidrListAliases": []
},
{
"fromPort": 22,
"toPort": 22,
"protocol": "tcp",
"cidrs": [
"0.0.0.0/0"
],
"cidrListAliases": []
},
{
"fromPort": 8080,
"toPort": 8080,
"protocol": "tcp",
"cidrs": [
"11.11.11.0/20",
"22.22.22.0/20"
],
"cidrListAliases": []
}
]
}
3. 파라미터를 **‘PortInfo’**로 변경한 후 .json 파일을 사용하여 동일한 구성을 다른 인스턴스에 추가할 수 있습니다. 다음 예에서는 DestinationInstanceName, firewall.json 및 RegionName을 인스턴스에 대한 올바른 정보로 바꿉니다.
$ aws lightsail put-instance-public-ports --instance-name DestinationInstanceName --cli-input-json file://firewall.json --region
RegionName
관련 정보
AWS CLI 명령 참조 - lightsail
Amazon Lightsail API 참조 - Actions
get-instance-port-states
open-instance-public-ports