# 자가 호스팅 배포 (레거시)

## 개요

{% hint style="warning" %}
이 배포 유형은 거의 사용되지 않으며, 특별한 요구 사항이 있는 고객을 위해 남겨집니다.
{% endhint %}

## 업그레이드

Panther가 새 릴리스를 게시하면, 자체 호스팅 고객에게 알림을 보내 고객이 자신의 일정에 맞춰 업그레이드를 조율할 수 있도록 합니다. 업그레이드는 일반적으로 간단해야 하지만, 모든 것이 원활하게 진행되도록 업그레이드 전과 업그레이드 중에 따라야 할 몇 가지 단계가 있습니다.

### 업그레이드하기 전에

업그레이드를 시작하기 전에, Panther를 어떤 버전으로 업그레이드할지 반드시 확인하세요. Panther는 시맨틱 버전 관리를 사용하며, 마이너 릴리스를 건너뛰지 않고 가장 최근 패치 버전으로 업그레이드하는 것을 강력히 권장합니다.

예를 들어, 버전 `1.10.X` 를 사용 중이고 버전 `1.13.X`로 업그레이드하려는 경우, 먼저 `1.11.X`의 가장 높은 패치 버전으로 업그레이드한 다음, `1.12.X`로, 그리고 마지막으로 `1.13.X`로 업그레이드해야 합니다. 이렇게 하면 마이그레이션 문제가 발생하지 않습니다.

하나 또는 모든 마이너 버전에 대한 최신 패치 버전, 또는 마이너 버전에 사용할 수 있는 패치 버전 목록을 보려면 다음 [AWS CLI](https://aws.amazon.com/cli/) 명령을 사용하세요:

```bash
export VERSION=<패치 버전을 확인하려는 Panther의 마이너 버전, 예: 1.108>

# 주어진 마이너 버전의 최신 패치 버전을 출력하려면:
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | grep "PRE v$VERSION" | awk -F"PRE v|/"  '{print $2}' | sort -V | tail -1

# 주어진 마이너 버전의 모든 패치 버전을 출력하려면:
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | grep "PRE v$VERSION" | awk '{print $2}' | sort -t "." -k1,1n -k2,2n -k3,3n

# 각 마이너 버전의 최신 패치 버전을 출력하려면
aws s3 ls s3://panther-community-us-east-1 --no-sign-request | \
    grep "PRE v" | \
    awk -F"PRE v|/" '{print $2}' | \
    sort -V | \
    awk -F. '{key=$1"."$2} prev!=key && NR>1{print last} {prev=key; last=$0} END{print last}'
```

추가로, `PantherDeploymentRole` 을 사용해 Panther를 배포하는 경우, 배포하려는 Panther 버전에 맞는 올바른 버전으로 `PantherDeploymentRole` 를 업데이트했는지 확인하세요. 버전 `1.13.X` 에서 버전 `1.14.X`로 업그레이드하려는 경우, 업그레이드 전에 `PantherDeploymentRole` 도 버전 `1.14.X` 이어야 합니다. 다음은 `PantherDeploymentRole` 템플릿 URL입니다:

```
https://panther-public-cloudformation-templates.s3.amazonaws.com/panther-deployment-role/{version}/template.yml
```

### 업그레이드하는 동안

업그레이드를 수행하려면 CloudFormation 콘솔에서 루트 Panther 스택을 찾아 `Update` 버튼을 클릭하고 `Replace template URL`를 선택한 다음, 배포하려는 원하는 Panther 버전에 대한 `TemplateURL` 을 삽입하세요. 템플릿 URL은 다음 형식이어야 합니다:

#### **예시**

[https://panther-enterprise-us-east-2.s3.amazonaws.com/v1.25.1/panther.yml](https://panther-enterprise-{region}.s3.amazonaws.com/%7Bversion%7D/panther.yml)

```
https://panther-enterprise-{region}.s3.amazonaws.com/{version}/panther.yml
```

CloudFormation 파라미터가 올바른지, 그리고 CloudFormation이 귀사를 대신해 IAM 리소스와 중첩된 CloudFormation 리소스를 생성할 수 있는지 확인하는 몇 페이지를 거치도록 안내받게 됩니다.

#### Pulumi CodeBuild 실행

우리는 인프라 관리를 위해 Pulumi를 사용합니다. 주요 Panther 스택이 배포된 후에는 다음에 대한 빌드를 시작해야 합니다. `panther-pulumi` CodeBuild 프로젝트.\
\
예를 들면: `aws codebuild start-build --project-name panther-pulumi`

## 참고

### 루트 스택 이름 지정

Panther를 배포할 때 배포할 루트 panther 스택의 템플릿 URL이 제공됩니다. 만약 `PantherDeploymentRole` 을 사용해 Panther를 배포하는 경우, 루트 스택 이름에 반드시 `panther-` 접두사가 들어가도록 하세요. 루트 스택의 이름은 스택이 생성하는 모든 리소스 이름 앞에 붙으며, `PantherDeploymentRole` 는 이름이 `panther-`.

### 배포 파라미터 구성

Panther CloudFormation 스택에는 구성 가능한 배포 파라미터가 여러 개 있습니다. 다음 옵션에 특히 주의하세요:

* `FedRAMPEnabled`: Fedramp 제어를 활성화/비활성화합니다. 기본값은 `false`이며, 허용되는 값은 `true` 또는 `false`.
* `FirstUserEmail` ***(필수)***: 이 이메일 주소로 Panther 관리자 초대장이 전송됩니다. 최초 배포가 성공한 이후에는 이 값의 변경 사항이 무시됩니다.
* `FirstUserFamilyName` ***(필수)***: 초기 Panther 사용자 - 성
* `FirstUserGivenName` ***(필수)***: 초기 Panther 사용자 - 이름
* `PulumiSecretArn` 및 `PulumiSecretKeyArn` **(*****필수*****):** 이 값들은 저희 팀에서 제공할 것입니다 - 귀하는 조직 내에 전용 [Pulumi](https://www.pulumi.com/) 액세스 토큰을 갖게 됩니다.
* `SentryEnabled`: Sentry 통합을 활성화/비활성화합니다. 기본값은 `true`이며, 허용되는 값은 `true` 또는 `false`입니다. 이는 `FedRAMPEnabled` 가 true일 때 무시됩니다.
* `SnowflakeAPISecretARN` ***(필수)***: 구성과 자격 증명이 포함된 Snowflake API 읽기 전용 비밀을 가리키는 ARN입니다.
* `SnowflakeAPISecretRotationDays`: Snowflake PANTHER\_READONLY 비밀의 회전 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다.
* `SnowflakeAdminAPISecretRotationDays`: Snowflake PANTHER\_ADMIN 비밀의 회전 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다. 권장값은 1입니다.
* `SnowflakeAdminAPISecretARN` ***(필수)***: 구성과 자격 증명이 포함된 Snowflake API 관리자 비밀을 가리키는 ARN입니다.
* `SnowflakeAdminAPISecretRotationDays`: Snowflake PANTHER\_ADMIN 비밀의 회전 주기(일)입니다. 기본값은 0이며, 최소값은 0입니다. 권장값은 1입니다.
* `SnowflakeDestinationClusterARNs` ***(필수)***: Snowflake IAM 역할과 연결할 Snowflake 클러스터 ARN입니다. 이는 다음을 구성하는 데 사용됩니다. [Snowpipe를](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro).
* `SnowflakeEdition`: Snowflake 인스턴스의 에디션입니다. 기본값은 `standard`.
* `SnowflakeType`: 데이터 레이크 백엔드의 유형입니다. **다음으로 설정** `Connected`**.**

Panther에는 위에 나열된 것 외에도 여러 다른 구성 옵션이 있습니다. Panther의 첫 배포에서는 이러한 매개변수를 설정하지 않는 것을 권장합니다. 초기 배포의 어떤 단계라도 실패하면 전체 배포가 실패하고 롤백되어 모든 인프라가 삭제됩니다. Panther의 초기 배포를 완료한 후에는 다른 루트 매개변수로 스택을 업데이트할 수 있습니다. 그런 다음 이러한 설정 중 하나라도 배포 실패를 일으키면 Panther는 전체 새 배포 없이 이전 설정으로 간단히 롤백합니다. 여기에는 snowflake 및 사용자 지정 도메인 구성 매개변수와 같은 항목이 포함됩니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.panther.com/ko/system-configuration/panther-deployment-types/legacy-configurations/self-hosted-deployments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
