AWS KMS 키링

AWS KMS 키링 (AWS KMS Keyring)

이 페이지는 Nomad 에이전트 구성의 keyring "awskms" 블록에서 AWS Key Management Service (KMS) 키링을 구성하는 방법에 대한 참조 정보를 제공해요. AWS 리전, KMS API 엔드포인트, KMS 키 ID, AWS 인증을 구성해요. KMS 루트 키 회전을 Nomad가 어떻게 지원하는지도 알아봐요.

출처: 문서

본문

AWS KMS 키링은 Nomad가 자체 키링을 래핑하기 위해 AWS KMS를 사용하도록 구성해요. 이 예시는 필요한 모든 값을 제공해 Nomad 구성 파일을 통해 AWS KMS 키링을 구성하는 방법을 보여줘요.

keyring "awskms" {
  active = true
  name   = "example"

  # fields specific to awskms
  region     = "us-east-1"
  access_key = "«redacted:AKIA…»"
  secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey"
  endpoint   = "https://vpce-0e1bb1852241f8cc6-pzi0do8n.kms.us-east-1.vpce.amazonaws.com"
}

awskms 매개변수 (Parameters)

이 매개변수들은 Nomad 구성 파일의 keyring 블록에 적용돼요.

  • region (string: "us-east-1") — 암호화 키가 위치한 AWS 리전이에요. 제공하지 않으면 AWS_REGION 또는 AWS_DEFAULT_REGION 환경 변수, ~/.aws/config 파일, 또는 인스턴스 메타데이터에서 채워질 수 있어요.
  • access_key (string: <required>) — 사용할 AWS 액세스 키 ID예요. AWS_ACCESS_KEY_ID 환경 변수로도 지정할 수 있고, AWS CLI 또는 인스턴스 프로파일의 AWS 프로파일 일부로 지정할 수도 있어요.
  • session_token (string: "") — AWS 세션 토큰을 지정해요. AWS_SESSION_TOKEN 환경 변수로도 지정할 수 있어요.
  • secret_key (string: <required>) — 사용할 AWS 시크릿 액세스 키예요. AWS_SECRET_ACCESS_KEY 환경 변수로도 지정할 수 있고, AWS CLI 또는 인스턴스 프로파일의 AWS 프로파일 일부로 지정할 수도 있어요.
  • kms_key_id (string: <required>) — 암호화·복호화에 사용할 AWS KMS 키 ID 또는 ARN이에요. alias/key-alias-name 형식의 별칭을 사용할 수도 있어요.
  • endpoint (string: "") — AWS KMS 요청을 위한 KMS API 엔드포인트예요. AWS_KMS_ENDPOINT 환경 변수로도 지정할 수 있어요. 예를 들어 VPC Endpoint를 통해 KMS에 연결할 때 유용해요. 설정하지 않으면 Nomad는 리전의 기본 API 엔드포인트를 사용해요.

인증 (Authentication)

인증 관련 값은 환경 변수 또는 구성 매개변수로 제공해야 해요.

참고 — 구성 파일에서 keyring 블록의 매개변수로 AWS_ACCESS_KEY_ID와 AWS_SECRET_ACCESS_KEY를 전달할 수는 있지만, 이 값들은 환경 변수나 인스턴스 프로파일로 설정할 것을 강력히 권장해요.

AWS 인증 값:

  • AWS_REGION 또는 AWS_DEFAULT_REGION
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

참고 — 위의 AWS 특정 값을 제공하지 않으면 클라이언트는 공식 AWS SDK와 지정된 자격 증명, 환경 자격 증명, 공유 파일 자격 증명, IAM 역할/ECS 태스크 자격 증명을 그 순서대로 사용해요. AWS SDK and Tools 표준 자격 증명 문서를 참고해요.

Nomad는 KMS 키에 대해 다음 권한이 필요해요.

  • kms:Encrypt
  • kms:Decrypt
  • kms:DescribeKey

이것들을 Nomad가 사용하는 보안 주체(principal)에 대한 IAM 권한, KMS 키 정책, 또는 키에 대한 KMS Grants를 통해 부여해요.

키 회전 (Key rotation)

이 키링은 AWS KMS에 정의된 루트 키의 회전을 지원해요. 키 정보가 암호화된 데이터와 함께 저장되므로 KMS의 경우 자동 회전과 수동 회전 모두 지원돼요. 이전 키는 비활성화하거나 삭제하면 안 되며, 더 오래된 데이터를 복호화하는 데 사용돼요. 새로 추가되거나 업데이트된 데이터는 키링 구성에 정의된 현재 키, 또는 키 별칭 아래의 현재 키로 암호화돼요.

더 알아보기 (Learn more)