> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HashiCorp Vault

> 클라이언트 토큰과 최소 권한 정책으로 Vault를 Iru Compliance에 연결하여 마운트, 정책 및 감사 구성 증거를 수집합니다.

### HashiCorp Vault 정보

Iru는 Vault HTTP API를 사용하여 **시크릿 엔진 마운트**, **인증 방법 구성**, **명명된 정책**, **감사 디바이스** 및 관련 **sys/** 메타데이터를 읽습니다. 각 요청은 \*\*`X-Vault-Token`\*\*에 **클라이언트 토큰**을 담아 전송합니다. Iru는 **구성 증거**를 수집하며, **시크릿 평문** 값은 수집하지 않습니다.

**Vault OSS**, **Enterprise**(네임스페이스에는 추가 설정이 필요할 수 있음) 및 **HCP Vault**에서 작동합니다.

### 작동 방식

```http theme={null}
X-Vault-Token: hvs.xxxxxxxx
```

토큰은 모든 Vault **인증 방법**(Token, AppRole, LDAP 등)에서 발급받을 수 있습니다. 마법사는 먼저 **`vault_addr`**(예: `https://vault.example.com:8200`)을 저장한 다음 토큰을 받습니다.

| 항목 | 값 |
| - | - |
| **범주** | 보안 |
| **인증** | 클라이언트 토큰(`X-Vault-Token`) |

공식 참고 자료: [Auth concepts](https://developer.hashicorp.com/vault/docs/concepts/auth), [HTTP API](https://developer.hashicorp.com/vault/api-docs), [Policies](https://developer.hashicorp.com/vault/docs/concepts/policies), [AppRole](https://developer.hashicorp.com/vault/docs/auth/approle).

### 사전 요구 사항

* **Iru에서 연결할 수 있는** Vault 클러스터(해당하는 경우 네트워크 / 방화벽 / PrivateLink).
* 아래 예시와 같이 읽기 전용 **`sys/`** 액세스 권한을 가진 **정책** 및 **토큰**(또는 AppRole)을 생성할 수 있는 권한.

### 읽기 전용 정책 예시(HCL)

`.hcl` 파일로 저장하고 \*\*`vault policy write iru-compliance your-file.hcl`\*\*로 적용합니다.

```hcl lines theme={null}
path "sys/mounts" {
  capabilities = ["read", "list"]
}
path "sys/auth" {
  capabilities = ["read", "list"]
}
path "sys/policy" {
  capabilities = ["read", "list"]
}
path "sys/policies/acl/*" {
  capabilities = ["read", "list"]
}
path "sys/audit" {
  capabilities = ["read", "list"]
}
path "auth/token/lookup-self" {
  capabilities = ["read"]
}
```

### HashiCorp Vault를 Iru에 연결

#### 정책 적용 및 토큰 발급

<Steps>
  <Step title="Vault CLI 액세스가 가능한 워크스테이션 준비">
    TLS를 통해 \*\*`VAULT_ADDR`\*\*에 연결할 수 있고 **Vault CLI**(`vault` 바이너리)가 설치된 점프 호스트 또는 관리자 워크스테이션을 사용합니다.
  </Step>

  <Step title="Vault에 CLI 인증">
    조직에서 지원하는 방법(**`vault login`**, OIDC 등)으로 로그인하여 이후 명령이 정책 작성 및 토큰 생성에 충분한 권한으로 실행되도록 합니다.
  </Step>

  <Step title="정책 파일 작성">
    위의 예시 정책을 해당 머신에 `.hcl` 파일(예: `iru-compliance.hcl`)로 저장합니다.
  </Step>

  <Step title="Vault에 정책 적용">
    정책 파일 경로와 함께 \*\*`vault policy write iru-compliance`\*\*를 실행합니다.
  </Step>

  <Step title="갱신 가능한 토큰 생성">
    해당 정책에 바인딩된 **갱신 가능한** 토큰을 생성합니다(예: **`vault token create -policy=iru-compliance -ttl=720h -renewable=true`**). **`hvs.`** 토큰 값을 복사합니다.
  </Step>

  <Step title="프로덕션에서는 AppRole 권장">
    프로덕션 환경에서는 수명이 긴 정적 토큰 대신 **AppRole** 또는 다른 자동화된 흐름을 사용하는 것이 좋습니다.
  </Step>
</Steps>

#### Iru에서 커넥터 설정 완료

<Steps>
  <Step title="소스 열기">
    Iru Compliance의 왼쪽 탐색 모음에서 **컴플라이언스**를 펼치고 **소스**를 선택합니다.

    <Frame>
      <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="왼쪽 탐색: Compliance가 펼쳐지고 Sources가 선택됨" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
    </Frame>
  </Step>

  <Step title="HashiCorp Vault 켜기">
    **HashiCorp Vault**를 찾습니다(**범주** 또는 **이름 또는 설명으로 검색** 사용). 해당 카드에서 **토글**을 켭니다. 커넥터 마법사를 위한 브라우저 탭 또는 창이 열릴 수 있습니다.
  </Step>

  <Step title="서버 변수 구성">
    **`vault_addr`**(예: `https://vault.example.com:8200`)을 입력하고 메시지가 표시되면 서버 변수를 확인합니다.
  </Step>

  <Step title="Vault 토큰 붙여넣기">
    메시지가 표시되면 토큰을 **`X-Vault-Token`** 필드에 붙여넣습니다.
  </Step>

  <Step title="연결 완료">
    **API 키 제출**을 선택합니다. 연결에 성공하면 마법사에 **연결 구성됨**이 표시됩니다.
  </Step>

  <Step title="소스가 활성인지 확인">
    **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 브라우저 탭을 닫은 다음 **컴플라이언스** → **소스**로 돌아가 **HashiCorp Vault** 카드가 **활성**인지 확인합니다.
  </Step>
</Steps>

### 문제 해결

<AccordionGroup>
  <Accordion title="소스를 켜도 아무것도 열리지 않음">
    Iru 사이트에 대한 **팝업 차단** 설정을 확인한 후 다시 시도하세요.
  </Accordion>

  <Accordion title="서버 변수 실패">
    소스를 껐다 켜서 마법사를 새로 고치고 \*\*`vault_addr`\*\*을 다시 입력하세요.
  </Accordion>

  <Accordion title="403 permission denied">
    토큰에 **`iru-compliance`** 정책을 연결하고 **Enterprise 네임스페이스**를 확인하세요.
  </Accordion>

  <Accordion title="토큰 만료">
    새 토큰을 발급하고 Iru를 업데이트하세요. **갱신**을 활성화하거나 AppRole 순환을 사용하세요.
  </Accordion>

  <Accordion title="연결 거부됨">
    호스트 이름, 포트(**8200**), TLS 및 Iru의 아웃바운드 경로를 확인하세요.
  </Accordion>

  <Accordion title="503 sealed">
    테스트하기 전에 Vault를 \*\*봉인 해제(Unseal)\*\*하세요.
  </Accordion>
</AccordionGroup>

### 고려 사항

<CardGroup cols={2}>
  <Card title="Vault Enterprise 네임스페이스에는 경로 또는…" icon="circle-info">
    Vault **Enterprise** **네임스페이스**에는 이 기준선 이외의 경로나 설정이 필요할 수 있습니다. Vault 관리자와 협의하세요.
  </Card>
</CardGroup>

### 관련 문서

<CardGroup cols={2}>
  <Card title="Sources 관리" icon="plug" href="/ko/compliance/sources-management">
    모든 Compliance 소스를 찾아보고 관리합니다.
  </Card>

  <Card title="Compliance 시작하기" icon="rocket" href="/ko/compliance/getting-started-with-compliance">
    프레임워크, 작업 및 **아티팩트**.
  </Card>

  <Card title="Iru 개요" icon="layer-group" href="/ko/iru/platform-overview/iru-overview">
    Endpoint, Compliance 및 Identity가 함께 작동하는 방식.
  </Card>

  <Card title="Artifacts 관리" icon="folder-open" href="/ko/compliance/artifacts-management">
    소스 및 작업에서 수집한 증거를 업로드, 검토 및 정리합니다.
  </Card>
</CardGroup>
