KMS 기본 설정 속성

KMS 기본 설정 속성

Hadoop Key Management Server (KMS)의 기본 설정 속성과 그 값, 설명을 정리한 문서예요.

출처: 문서

본문

설정 속성 (Configuration Properties)

name value description
hadoop.kms.http.port 9600 KMS REST API용 HTTP 포트
hadoop.kms.http.host 0.0.0.0 KMS REST API용 바인드 호스트
hadoop.kms.http.administrators 관리자용 ACL. 기본 KMS 서블릿에 접근할 수 있는 사람을 제어하는 데 사용되는 구성이에요. 값은 사용자와 그룹을 쉼표로 구분한 목록이어야 해요. 사용자 목록이 먼저 오고, 공백으로 구분된 뒤 그룹 목록이 이어져요. 예: "user1,user2 group1,group2". 사용자와 그룹 모두 선택 사항이라서 "user1", " group1", "", "user1 group1", "user1,user2 group1,group2" 모두 유효해요 (" group1"의 앞 공백에 주의). *는 모든 사용자와 그룹에 접근을 허용하며 '*', '* ', ' *' 모두 유효해요.
hadoop.kms.ssl.enabled false SSL 활성화 여부. 기본값은 false, 즉 비활성화예요.
hadoop.http.max.threads 1000 최대 스레드 수
hadoop.http.max.request.header.size 65536 최대 HTTP 요청 헤더 크기
hadoop.http.max.response.header.size 65536 최대 HTTP 응답 헤더 크기
hadoop.http.temp.dir ${hadoop.tmp.dir}/kms KMS 임시 디렉터리
hadoop.http.socket.backlog.size 500 KMS 서버 수락(accept) 큐 크기
hadoop.http.idle_timeout.ms 60000 KMS 서버 연결 타임아웃 (밀리초)
hadoop.kms.key.provider.uri jceks://file@/${user.home}/kms.keystore KMS의 백킹(backing) KeyProvider URI
hadoop.security.keystore.java-keystore-provider.password-file JavaKeyStoreProvider를 사용한다면 keystore 비밀번호용 파일 이름
hadoop.kms.cache.enable true KMS가 백킹 KeyProvider의 캐시로 동작할지 여부. 캐시가 활성화되면 getKeyVersion, getMetadata, getCurrentKey 같은 연산은 백킹 KeyProvider를 조회하지 않고 캐시된 데이터를 반환할 때가 있어요. 캐시된 값은 키가 삭제되거나 수정될 때 플러시돼요.
hadoop.kms.cache.timeout.ms 600000 KMS 키 버전과 키 메타데이터 캐시의 만료 시간 (밀리초). getKeyVersion과 getMetadata에 영향을 미쳐요.
hadoop.kms.current.key.cache.timeout.ms 30000 KMS 현재 키 캐시의 만료 시간 (밀리초). getCurrentKey 연산에 영향을 미쳐요.
hadoop.kms.audit.aggregation.window.ms 10000 집계 창(ms로 지정) 안의 중복 감사(audit) 로그 이벤트는 로그 트래픽을 줄이기 위해 억제돼요. 집계된 이벤트의 단일 메시지가 창 끝에 집계 이벤트 수와 함께 출력돼요.
hadoop.kms.authentication.type simple KMS의 인증 유형. 'simple'(기본값) 또는 'kerberos'가 될 수 있어요.
hadoop.kms.authentication.kerberos.keytab ${user.home}/kms.keytab 구성된 Kerberos principal의 자격 증명이 있는 keytab 경로
hadoop.kms.authentication.kerberos.principal HTTP/localhost HTTP 엔드포인트에 사용할 Kerberos principal. Kerberos HTTP SPNEGO 사양에 따라 principal은 반드시 'HTTP/'로 시작해야 해요.
hadoop.kms.authentication.kerberos.name.rules DEFAULT Kerberos principal 이름을 해석하는 데 사용되는 규칙
hadoop.kms.authentication.signer.secret.provider random 인증 쿠키를 서명하는 비밀을 어떻게 저장할지 나타내요. 옵션은 'random'(기본값), 'string', 'zookeeper'예요. 여러 KMS 인스턴스가 있는 설정에서는 'zookeeper'를 사용해야 해요.
hadoop.kms.authentication.signer.secret.provider.zookeeper.path /hadoop-kms/hadoop-auth-signature-secret KMS 인스턴스가 비밀을 저장하고 검색하는 Zookeeper ZNode 경로
hadoop.kms.authentication.signer.secret.provider.zookeeper.connection.string #HOSTNAME#:#PORT#,... Zookeeper 연결 문자열, 쉼표로 구분된 호스트 이름과 포트 목록
hadoop.kms.authentication.signer.secret.provider.zookeeper.auth.type none Zookeeper 인증 유형, 'none'(기본값) 또는 'sasl'(Kerberos)
hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.keytab /etc/hadoop/conf/kms.keytab Zookeeper에 연결하기 위한 자격 증명이 있는 Kerberos keytab의 절대 경로
hadoop.kms.authentication.signer.secret.provider.zookeeper.kerberos.principal kms/#HOSTNAME# Zookeeper에 연결하는 데 사용되는 Kerberos 서비스 principal
hadoop.kms.audit.logger org.apache.hadoop.crypto.key.kms.server.SimpleKMSAuditLogger KMS의 감사 로거. KMSAuditLogger 클래스 이름의 쉼표로 구분된 목록이에요. 기본값은 텍스트 형식의 SimpleKMSAuditLogger만이에요. 구성되지 않으면 기본값이 사용돼요.
hadoop.kms.key.authorization.enable true 키별(per Key) 인증을 활성화/비활성화하는 Boolean 속성
hadoop.security.kms.encrypted.key.cache.size 100 캐시 크기. 각 키 이름 아래에 캐시할 수 있는 EEK의 최대 수예요.
hadoop.security.kms.encrypted.key.cache.low.watermark 0.3 캐시의 낮은 워터마크. 각 키 이름에 대해 get 호출 후 캐시된 EEK 수가 (size * low watermark)보다 적으면 이 키 이름 아래의 캐시가 비동기적으로 채워져요. 각 키 이름에 대해 비동기 채우기용 스레드는 1개만 실행될 수 있어요.
hadoop.security.kms.encrypted.key.cache.num.fill.threads 2 키 이름 전반에 걸쳐 캐시의 큐를 채우도록 허용된 비동기 스레드의 전체 최대 수
hadoop.security.kms.encrypted.key.cache.expiry 43200000 캐시 만료 시간 (밀리초). 내부적으로 Guava 캐시가 캐시 구현으로 사용돼요. 만료 접근 방식은 expireAfterAccess예요.

더 알아보기 (Learn more)