> 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/13-create-security-group-traffic-policy.md).

# 보안그룹을 통한 인스턴스 통신 정책 만들기

이 문서는 보안그룹을 생성하고 인바운드/아웃바운드 규칙을 구성해 인스턴스 통신 정책을 적용하는 실습입니다.

## 사전 준비

* Cloud:iA 웹콘솔 접근 가능
* 프로젝트 계정(`project-owner`)으로 로그인 가능
* VPC 및 인스턴스 준비

## 개요

1. [보안그룹 생성](#step-1)
2. [규칙 편집](#step-2)
3. [인스턴스 통신 검증](#step-3)

## 1단계: 보안그룹 생성

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

### 절차

1. `보안 > 보안그룹`에서 `생성`을 클릭합니다.
2. 이름, VPC, 같은 보안그룹 VM 통신, 설명을 입력합니다.
3. 규칙 가져오기 없이 `생성`을 클릭합니다.

### 입력 예시

| 항목            | 값                                   |
| ------------- | ----------------------------------- |
| 이름            | `example-sg-app-001`                |
| VPC           | `example-vpc`                       |
| 같은 보안그룹 VM 통신 | `비허용`                               |
| 설명            | `security policy for app instances` |

### 확인

* 목록에 새 보안그룹이 표시됩니다.
* 초기 규칙이 인바운드 `0`, 아웃바운드 `1`로 표시됩니다.

## 2단계: 규칙 편집

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

### 절차

1. 보안그룹 상세로 이동합니다.
2. `인바운드 규칙` 탭에서 `편집`을 클릭합니다.
3. TCP 22, TCP 8080 규칙을 추가 후 저장합니다.
4. 필요 시 `아웃바운드 규칙`도 제한 정책으로 수정합니다.

### 입력 예시

| 항목       | 값                                         |
| -------- | ----------------------------------------- |
| 인바운드 규칙1 | `TCP / 192.168.11.0/24 / 22 / ssh-admin`  |
| 인바운드 규칙2 | `TCP / 10.0.0.0/16 / 8080 / app-internal` |
| 아웃바운드 규칙 | `모든 트래픽 / 0.0.0.0/0 / 전체`                 |

### 확인

* 규칙 목록에 신규 규칙이 표시됩니다.
* 중복 규칙 입력 시 저장이 차단됩니다.

## 3단계: 인스턴스 통신 검증

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

### 절차

1. 보안그룹을 인스턴스 NIC에 연결합니다.
2. 허용된 포트(22, 8080)로 접속을 시도합니다.
3. 허용하지 않은 포트(예: 3306) 접속을 시도합니다.

### 입력 예시

| 항목        | 값                                |
| --------- | -------------------------------- |
| 대상 인스턴스   | `example-instance-app-001`       |
| SSH 테스트   | `ssh example-user@192.168.11.13` |
| 앱 포트 테스트  | `curl http://10.0.1.41:8080`     |
| 차단 포트 테스트 | `nc -vz 10.0.1.41 3306`          |

### 확인

* 허용 포트 통신은 성공합니다.
* 미허용 포트 통신은 실패합니다.
