keyring 구성 블록

keyring 구성 블록 (Keyring Configuration Block)

이 페이지는 Nomad 에이전트 구성의 keyring 블록에서 키링 보호 동작을 구성하는 방법에 대한 참조 정보를 제공해요. 키링을 활성화하고 이름을 구성해요. 키링 고가용성(HA)을 구성하고 키링을 마이그레이션하는 방법도 알아봐요.

출처: 문서

본문

keyring 블록은 변수 암호화와 워크로드 아이덴티티 서명에 사용되는 키링을 Nomad 서버가 어떻게 보호할지 구성해요. 기본적으로 Nomad는 서버 간에 공유되지 않는 고유 키 암호화 키(KEK)로 키 자료를 암호화하고, Key Management 문서에 설명된 대로 래핑된 키 자료를 디스크에 기록해요. Nomad는 이를 "aead"(연관 데이터를 사용한 인증 암호화)라고 부르며, keyring 구성 블록을 사용하면 Nomad 서버가 대신 외부 키 관리 시스템(KMS)이나 Vault transit 암호화를 사용할 수 있어요. 암호화된 키는 디스크에 저장되지만, KEK가 파일에 없기 때문에 이제 오프라인 공격으로부터 보호돼요.

모든 keyring 블록은 KMS 유형에 대한 라벨을 요구해요. 각 외부 KMS마다 고유한 구성 옵션이 있어요. keyring 블록은 Nomad 클라이언트가 아닌 서버에만 적용돼요.

keyring [TYPE] {
  name   = "example"
  active = true
}

기본 keyring 구성은 다음과 같아요.

keyring "aead" {
  active = true
}

keyring 매개변수 (Parameters)

모든 keyring 블록은 다음 매개변수를 지원해요.

  • name (string: "") — keyring 블록의 고유 식별자로, 같은 유형의 블록이 여러 개 있을 때 구분하는 데 사용돼요.
  • active (bool: false) — 키 암호화에 사용할 블록을 나타내요. 기존 서버의 경우 어떤 블록이 active인지 바꾸는 것은 키 회전으로 생성되는 새 키에만 영향을 줘요. 기존 키는 이전 active 블록으로 암호화되므로, 그 블록들이 가비지 컬렉션되고 키가 키스토어에서 제거될 때까지 구성에서 제거하면 안 돼요. Nomad Community Edition에서는 한 번에 하나의 키링만 active일 수 있어요.

키링 마이그레이션 (Migrating Keyrings)

새 키링으로 마이그레이션하려면 서버에 active=true로 새 keyring 블록을 추가하고 서버를 재시작해요. 현재 키가 주기적으로 또는 nomad operator root keyring rotate 명령어로 회전될 때 서버가 새 키링 래퍼를 사용하기 시작해요.

keyring을 추가하거나 제거하려면 Nomad 서버를 재시작해야 해요. 래핑한 모든 키가 가비지 컬렉션될 때까지 keyring을 제거하면 안 돼요. Nomad 서버의 데이터 디렉터리에 있는 키스토어 디렉터리 내용을 확인하고, 이를 nomad operator root keyring list의 출력과 비교할 수 있어요.

고가용성 (High Availability) — Enterprise

Enterprise — 이 기능은 Nomad Enterprise에서 사용할 수 있어요.

키링 고가용성은 외부 KMS의 중단에 대한 복원력을 확보하기 위해 여러 개의 활성 keyring 블록을 구성하는 수단을 제공해요. active = true인 keyring 블록이 여러 개 있으면 Nomad Enterprise는 생성하는 각 키를 모든 활성 KMS 제공자에서 암호화해요. 시작 시 Nomad는 각 키를 복호화할 수 있는 제공자를 찾을 때까지 KMS 제공자를 순서대로 시도해요.

이 예시 고가용성 구성에서는 두 keyring 블록 모두 "awskms" 제공자를 사용하지만, 각 블록은 서로 다른 AWS 리전의 서로 다른 KMS 키를 사용해요.

keyring "awskms" {
  active     = true
  name       = "kms-us-east-1"
  region     = "us-east-1"
  kms_key_id = "arn:aws:kms:us-east-1:000000000000:key/7d23633a-4464-11ef-a273-abd12example"
}

keyring "awskms" {
  active     = true
  name       = "kms-us-east-2"
  region     = "us-east-2"
  kms_key_id = "alias/nomad-keyring-us-east-2"
}

더 알아보기 (Learn more)