방화벽 규칙을 여러 Amazon Lightsail 인스턴스에 복사하고 싶습니다.
간략한 설명
여러 Lightsail 인스턴스에 동일한 방화벽 규칙을 사용하려면 각 인스턴스에 대한 규칙을 편집해야 합니다. AWS Command Line Interface(AWS CLI) Lightsail 명령 및 API 동작을 사용하여 현재 방화벽 규칙을 검색합니다. 이를 .json 파일에 넣은 다음 .json 파일을 사용하여 모든 규칙을 다른 Lightsail 인스턴스에 복사합니다.
해결 방법
**참고:**AWS CLI 명령을 실행할 때 오류가 발생하면, Troubleshoot AWS CLI errors을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
-
기존 인스턴스에서 복사하려는 현재 구성을 검색하려면 get-instance-port-states 명령을 실행합니다.
$ aws lightsail get-instance-port-states --instance-name SourceInstanceName --region RegionName | grep -v "state" > firewall.json
참고: 앞의 명령은 방화벽 구성이 포함된 .json 파일을 생성합니다. SourceInstanceName을 소스 인스턴스 이름으로 바꾸고 RegionName을 인스턴스가 있는 AWS 리전으로 바꿉니다.
-
.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": []
}
]
}
-
다른 인스턴스에 동일한 구성을 추가하려면 put-instance-public-ports 명령을 실행합니다.
$ aws lightsail put-instance-public-ports --instance-name DestinationInstanceName --cli-input-json file://firewall.json --region
RegionName
참고: DestinationInstanceName을 대상 인스턴스로, firewall.json을 .json 파일 이름으로, RegionName을 인스턴스가 있는 리전으로 바꿉니다