> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/user-guide/examples-and-labs/12-customize-nacl-and-bind-subnet.md).

# 네트워크 ACL 커스터마이징하기

이 문서는 커스텀 Network ACL을 생성하고 규칙을 추가한 뒤 서브넷을 연결해 트래픽을 제어하는 실습입니다.

## 사전 준비

* Cloud:iA 웹콘솔 접근 가능
* 프로젝트 계정(`project-owner`)으로 로그인 가능
* 퍼블릭 서브넷 + 플로팅 IP 연결 인스턴스 준비
* 보안그룹은 인바운드/아웃바운드 모두 허용 상태로 준비

## 개요

1. [커스텀 Network ACL 생성](#step-1)
2. [인바운드/아웃바운드 규칙 추가](#step-2)
3. [서브넷 연결 후 통신 확인](#step-3)

## 1단계: 커스텀 Network ACL 생성

**수행 계정/화면:** `프로젝트 계정` / `프로젝트 페이지`

### 절차

1. `보안 > Network ACL`에서 `생성`을 클릭합니다.
2. 이름, VPC, 설명을 입력합니다.
3. `생성`을 클릭합니다.

### 입력 예시

| 항목  | 값                                        |
| --- | ---------------------------------------- |
| 이름  | `example-custom-nacl-001`                |
| VPC | `example-vpc`                            |
| 설명  | `custom nacl for subnet traffic control` |

### 확인

* Network ACL 목록에 커스텀 Network ACL이 생성됩니다.
* 초기 규칙 수가 `1/1`(기본 거부)로 표시됩니다.

## 2단계: 인바운드/아웃바운드 규칙 추가

**수행 계정/화면:** `프로젝트 계정` / `프로젝트 페이지`

### 절차

1. 생성한 Network ACL 상세로 이동합니다.
2. `인바운드 규칙`에서 `편집`을 클릭합니다.
3. SSH 허용 규칙(TCP, 22, 소스 CIDR)을 추가 후 저장합니다.
4. `아웃바운드 규칙`에서 응답용 TCP 임시 포트 허용 규칙을 추가 후 저장합니다.

### 입력 예시

| 항목            | 값                 |
| ------------- | ----------------- |
| 인바운드 프로토콜     | `TCP`             |
| 인바운드 소스 CIDR  | `192.168.11.0/24` |
| 인바운드 포트       | `22`              |
| 인바운드 허용/거부    | `허용`              |
| 아웃바운드 프로토콜    | `TCP (임시 포트)`     |
| 아웃바운드 대상 CIDR | `192.168.11.0/24` |
| 아웃바운드 허용/거부   | `허용`              |

### 확인

* 규칙 목록에 추가한 허용 규칙이 표시됩니다.
* 규칙 저장 후 즉시 반영됩니다.

## 3단계: 서브넷 연결 후 통신 확인

**수행 계정/화면:** `프로젝트 계정 + 로컬 터미널` / `프로젝트 페이지 + SSH`

### 절차

1. Network ACL 상세 `서브넷` 탭에서 `연결`을 클릭합니다.
2. 대상 서브넷(`example-public-subnet-001`)을 연결합니다.
3. 로컬에서 플로팅 IP로 SSH 접속을 시도합니다.
4. 인바운드 허용 규칙을 삭제한 뒤 다시 SSH 접속을 시도합니다.

### 입력 예시

| 항목      | 값                                |
| ------- | -------------------------------- |
| 연결할 서브넷 | `example-public-subnet-001`      |
| SSH 명령  | `ssh example-user@192.168.11.13` |

### 확인

* 허용 규칙이 있을 때 SSH 접속이 성공합니다.
* 허용 규칙 삭제 후 SSH 접속이 실패합니다.
