셀프 호스팅 배포(레거시)

Panther에서 셀프 호스팅 배포 관리하기

개요

circle-exclamation

업그레이드

Panther가 새 릴리스를 발표하면 자체 호스팅 고객에게 알려드려 고객이 자체 일정에 맞춰 업그레이드를 조정할 수 있도록 합니다. 업그레이드는 일반적으로 간단하지만 모든 것이 원활하게 진행되도록 업그레이드 전후에 따라야 할 몇 가지 단계가 있습니다.

업그레이드하기 전에

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

예를 들어, 현재 버전이 1.10.X 이고 다음 버전으로 업그레이드하려면 1.13.X으로 먼저 업그레이드해야 합니다. 즉, 먼저 1.11.X그런 다음 그런 다음1.12.X 1.13.X마지막으로 업그레이드해야 합니다. 이렇게 하면 마이그레이션 문제가 발생하지 않습니다.

하나의 마이너 버전 또는 모든 마이너 버전에 대한 최신 패치 버전, 혹은 특정 마이너 버전의 사용 가능한 패치 버전 목록을 보려면 다음을 사용하세요. AWS CLIarrow-up-right 명령:

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입니다:

업그레이드 중

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

예제

https://panther-enterprise-us-east-2.s3.amazonaws.com/v1.25.1/panther.ymlarrow-up-right

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 제어 활성화/비활성화. 기본값은 true이며 허용 값은 부울 값 또는 true.

  • FirstUserEmail (필수): Panther 관리자 초대가 이 이메일 주소로 전송됩니다. 첫 번째 성공적인 배포 이후에는 이 값에 대한 업데이트가 무시됩니다.

  • FirstUserFamilyName (필수): 초기 Panther 사용자 - 성

  • FirstUserGivenName (필수): 초기 Panther 사용자 - 이름

  • PulumiSecretArnPulumiSecretKeyArn (필수): 이 값들은 우리 팀에서 제공할 것입니다 - 귀사는 우리 조직에서 전용 Pulumiarrow-up-right 액세스 토큰을 갖게 됩니다.

  • SentryEnabled: Sentry 통합 활성화/비활성화. 기본값은 부울 값이며 허용 값은 부울 값 또는 true입니다. 이것은 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들입니다. 이는 Snowpipearrow-up-right.

  • SnowflakeEdition: Snowflake 인스턴스의 에디션. 기본값은 standard.

  • SnowflakeType: 데이터 레이크 백엔드의 유형. 로 설정 Connected.

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

Last updated

Was this helpful?