ocikms KMS

ocikms KMS

OCI KMS는 키 관리를 위해 Boundary가 OCI KMS를 사용하도록 구성해요. OCI KMS는 Boundary 구성 파일에 kms "ocikms" 블록이 있으면 활성화돼요.

출처: HashiCorp Boundary docs

본문

OCI KMS는 키 관리를 위해 Boundary가 OCI KMS를 사용하도록 구성해요.

OCI KMS는 Boundary 구성 파일에 kms "ocikms" 블록이 있으면 활성화돼요.

ocikms 예시

이 예시는 필요한 모든 값을 제공해 Boundary 구성 파일을 통해 OCI KMS를 구성하는 방법을 보여줘요.

kms "ocikms" {
  purpose              = "root"
  key_id               = "ocid1.key.oc1.iad.afnxza26aag4s.abzwkljsbapzb2nrha5nt3s7s7p42ctcrcj72vn3kq5qx"
  crypto_endpoint      = "https://afnxza26aag4s-crypto.kms.us-ashburn-1.oraclecloud.com"
  management_endpoint  = "https://afnxza26aag4s-management.kms.us-ashburn-1.oraclecloud.com"
  auth_type_api_key    = "true"
}

ocikms 파라미터

이 파라미터들은 Boundary 구성 파일의 kms 스탠자에 적용돼요.

  • purpose — 이 KMS의 목적이에요. 허용되는 값은 bsr, config, downstream-worker-auth, previous-root, recovery, root, worker-auth, worker-auth-storage예요. 세션 녹화를 활성화하려면 purpose에 bsr 값을 구성해야 해요. 지원되는 KMS purpose에 대한 자세한 내용은 Data encryption in Boundary를 참고하세요.
  • key_id (string: <required>) — 사용할 OCI KMS 키 ID예요.
  • crypto_endpoint (string: <required>) — OCI KMS 암호화/복호화 요청을 보내는 데 사용할 OCI KMS 암호화 엔드포인트(또는 데이터 플레인 엔드포인트)예요.
  • management_endpoint (string: <required>) — OCI KMS 키 관리 요청을 보내는 데 사용할 OCI KMS 관리 엔드포인트(또는 제어 플레인 엔드포인트)예요.
  • auth_type_api_key (boolean: false) — OCI KMS 서비스에 API 키로 인증하는지 여부를 지정해요. false이면 Boundary는 컴퓨트 인스턴스의 인스턴스 주체(instance principal)로 인증해요. 자세한 내용은 Authentication 절을 참고하세요. 기본값은 false예요.

인증

인증 관련 값은 환경 변수나 구성 파라미터로 제공해야 해요.

인스턴스 주체(Instance Principal)를 사용하려면 아래 구성 섹션을 추가하고, configuration docs에 나와 있는 추가 구성 설정을 더 적용하세요.

kms "ocikms" {
  purpose             = "root"
  crypto_endpoint     = "<kms-crypto-endpoint>"
  management_endpoint = "<kms-management-endpoint>"
  key_id              = "<kms-key-id>"
}

사용자 주체(User Principal)를 사용하려면 플러그인이 OCI SDK용으로 정의한 API 키(보통 ~/.oci/config 아래)를 사용해요.

kms "ocikms" {
  purpose             = "root"
  auth_type_api_key   = true
  crypto_endpoint     = "<kms-crypto-endpoint>"
  management_endpoint = "<kms-management-endpoint>"
  key_id              = "<kms-key-id>"
}

컴퓨트 인스턴스가 OCI KMS 서비스를 사용할 권한을 부여하려면 KMS 접근에 대한 정책을 작성하세요.

  • OCI 테넌시에 Dynamic Group을 만드세요.
  • Dynamic Group이 OCI KMS의 키를 사용하거나 관리하도록 허용하는 정책을 만드세요. 이 정책을 작성하는 방법은 여러 가지가 있어요. OCI Identity Policy를 참고하거나 시작점으로 사용할 수 있어요.

가장 흔한 정책은 테넌트 A의 dynamic group이 테넌트 B의 KMS 키를 사용하도록 허용하는 것이에요.

define tenancy tenantB as <tenantB-ocid>

endorse dynamic-group <dynamic-group-name> to use keys in tenancy tenantB
define tenancy tenantA as <tenantA-ocid>

define dynamic-group <dynamic-group-name> as <dynamic-group-ocid>

admit dynamic-group <dynamic-group-name> of tenancy tenantA to use keys in compartment <key-compartment>

ocikms OCI KMS 키 순환(rotate)

OCI KMS 키 순환 기능의 경우 OCI KMS가 내부적으로 키의 새 버전을 만들어요. 이 과정은 Boundary와 독립적이며, Boundary는 여전히 같은 key_id를 중단 없이 사용해요.