네트워크 ACL 작성
서브넷의 인바운드 및 아웃바운드 트래픽을 제한하도록 ACL을 구성할 수 있습니다. 기본적으로는 모든 트래픽이 허용됩니다.
각 서브넷은 하나의 ACL에만 연결될 수 있습니다. 그러나 각 ACL은 여러 서브넷에 연결될 수 있습니다.
시작하기 전에 VPC 및 서브넷을 작성했는지 확인하십시오.
콘솔에서 네트워크 ACL 만들기
IBM Cloud 콘솔에서 ACL을 구성하려면 다음 단계를 따르세요:
-
IBM Cloud 콘솔로 이동하여 계정에 로그인합니다.
-
탐색 메뉴
선택한 다음 인프라
> 네트워크 > 액세스 제어 목록을 클릭합니다.
-
**작성 +**를 클릭하십시오.
-
위치 편집 아이콘
을 선택하고 다음 필드에 값을 입력하십시오.
- 지역-액세스 제어 목록의 대륙을 선택하십시오.
- 지역-액세스 제어 목록에 대한 지역을 선택하십시오.
-
세부 정보 아래에 다음 필드에 값을 입력합니다:
- 이름- 액세스 제어 목록의 고유 이름을 입력합니다.
- 자원 그룹-액세스 제어 목록에 대한 자원 그룹을 선택하십시오. 이 액세스 제어 목록에 대해 기본 그룹을 사용하거나 자원 그룹 목록 (정의된 경우) 에서 선택할 수 있습니다. 자세한 정보는 리소스를 리소스 그룹으로 구성하는 데 대한 우수 사례를 참조하십시오.
프로비저닝이 완료된 후에는 리소스 그룹을 변경할 수 없습니다.
- 태그-사용자 태그를 추가합니다. 사용자 태그는 계정 전체에서 볼 수 있습니다. 자세한 정보는 태그에 대한 작업을 참조하십시오.
- 액세스 관리 태그-액세스 제어 관계를 구성하는 데 도움이 되도록 액세스 관리 태그를 추가합니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.
- 가상 사설 클라우드- VPC를 선택합니다. 이 ACL에 기본 VPC를 사용하거나 목록에서 선택할 수 있습니다(정의된 경우). 자세한 정보는 Virtual Private Cloud 시작하기를 참조하십시오.
-
규칙에서 만들기 +를 클릭하여 서브넷으로 들어오거나 나가는 트래픽을 정의하는 인바운드 및 아웃바운드 규칙을 구성합니다. 각 규칙에 대해 다음 정보를 지정하십시오.
- 지정된 트래픽의 허용 또는 거부 여부를 선택하십시오.
- 규칙이 적용되는 프로토콜을 선택하십시오. ACL 규칙에서 ANY IPv4 프로토콜 사용에 대한 자세한 내용은 인터넷 통신 프로토콜 이해를 참조하십시오.
- 규칙의 소스와 목적지에 규칙이 적용되는 IP 범위와 포트를 지정하십시오. 예를 들어, 서브넷의 IP 범위
192.168.0.0/24로의 모든 인바운드 트래픽이 허용되도록 하려는 경우에는 Any를 소스로 지정하고192.168.0.0/24를 대상으로 지정하십시오. 그러나169.168.0.0/24에서만 전체 서브넷으로의 인바운드 트래픽을 허용하려면169.168.0.0/24를 규칙의 소스로, Any를 규칙의 대상으로 지정하십시오. - 규칙의 우선 순위를 지정하십시오. 낮은 숫자가 지정된 규칙이 먼저 평가되며 더 높은 숫자가 지정된 규칙을 오버라이드합니다. 예를 들어 우선순위가
2인 규칙이 HTTP 트래픽을 허용하고 우선순위가5인 규칙이 모든 트래픽을 거부하는 경우, HTTP 트래픽은 여전히 허용됩니다. - 작성을 클릭하십시오.
- 이 ACL에 연결할 서브넷을 선택하십시오. 추가 서브넷을 첨부하려면 첨부하기를 클릭합니다.
서브넷에 기존 ACL 연결이 있는 경우에는 이 ACL이 작성되고 있는 ACL로 대체됩니다.
-
페이지의 오른쪽 하단에 있는 요약 메뉴에서 총 예상 비용을 보십시오.
CLI에서 네트워크 ACL 만들기
시작하기 전에 CLI 환경을 설정 하십시오.
CLI에서 네트워크 ACL을 만들려면 다음 명령을 실행합니다:
ibmcloud is network-acl-create ACL_NAME VPC \
[--rules (RULES_JSON|@RULES_JSON_FILE) | --source-acl-id SOURCE_ACL_ID] \
[--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
[--output JSON] [-q, --quiet]
여기서:
ACL_NAME- 네트워크 ACL의 이름입니다.
VPC - VPC의 ID입니다.
--rules - JSON 또는 JSON 파일의 ACL에 대한 규칙입니다.
--source-acl-id - 규칙을 복사할 네트워크 ACL의 ID입니다.
--resource-group-id - 리소스 그룹의 ID. 이 옵션은
--resource-group-name와 상호 배타적입니다.--resource-group-name - 리소스 그룹의 이름. 이 옵션은
--resource-group-id와 상호 배타적입니다.--output - JSON 형식으로 출력합니다.
-q, --quiet - 상세 출력이 표시되지 않도록 합니다.
예를 들어, 다음과 같습니다.
ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479ibmcloud is network-acl-create my-acl 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --source-acl-id 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3
API로 네트워크 ACL 만들기
API를 사용하여 네트워크 ACL을 만들려면 다음 단계를 따르세요:
-
API 환경을 설정하십시오.
-
API 명령에 사용하도록 변수에
VpcId를 저장하십시오.export VpcId=<your_vpc_id> -
네트워크 ACL을 작성하십시오.
curl -X POST -sH "Authorization:${iam_token}" \ "$vpc_api_endpoint/v1/network_acls?version=$api_version&generation=2" \ -d '{"name": "testacl", "vpc":{"id": "'$VpcId'"},"resource_group": {"id": "'$ResourceGroupId'"}}' | jq
예: 규칙 구성
예를 들어, 다음 인바운드 규칙을 구성할 수 있습니다.
- 인터넷으로부터의 HTTP 트래픽을 허용합니다.
- 서브넷
10.10.20.0/24로부터의 모든 인바운드 트래픽을 허용합니다. - 모든 기타 인바운드 트래픽은 거부합니다.
| 우선순위 | 허용/거부 | 프로토콜 | 소스 | 대상 |
|---|---|---|---|---|
| 1 | 허용 | TCP | 임의 IP, 80 - 80 포트 | 임의의 IP, 임의의 포트 |
| 2 | 허용 | 전체 | 10.10.20.0/24 모든 포트 |
임의의 IP, 임의의 포트 |
| 3 | 거부 | 전체 | 임의의 IP, 임의의 포트 | 임의의 IP, 임의의 포트 |
그런 후 다음 아웃바운드 규칙을 구성하십시오.
- 인터넷으로의 HTTP 트래픽을 허용합니다.
- 서브넷
10.10.20.0/24로의 모든 아웃바운드 트래픽을 허용합니다. - 모든 기타 아웃바운드 트래픽은 거부합니다.
| 우선순위 | 허용/거부 | 프로토콜 | 소스 | 대상 |
|---|---|---|---|---|
| 1 | 허용 | TCP | 임의의 IP, 임의의 포트 | 임의 IP, 80 - 80 포트 |
| 2 | 허용 | 전체 | 임의의 IP, 임의의 포트 | 10.10.20.0/24 모든 포트 |
| 3 | 거부 | 전체 | 임의의 IP, 임의의 포트 | 임의의 IP, 임의의 포트 |