Looker는 AES-256 Galois/Counter Mode(GCM) 암호화를 사용하여 데이터를 내부적으로 암호화합니다. 모든 데이터 항목은 고유 데이터 키를 사용하여 암호화되며 서명이 확인된 버전인 암호화 봉투가 포함되어 있어 인증이 보장됩니다. 이 모드를 사용하려면 외부 고객 마스터 키(CMK)를 사용해야 합니다. CMK는 키 암호화 키(KEK)를 가져오고, 암호화, 복호화하는 데 사용되며, KEK는 데이터 키를 가져오고, 암호화, 복호화하는 데 사용됩니다.
기존 암호화를 사용하는 고객 호스팅 설치는 내부 데이터베이스를 AES-256 GCM 암호화로 이전해야 합니다. 신규 고객이 호스팅하는 설치는 AES-256 GCM 암호화를 위해 설치를 구성해야 합니다. AES-256 GCM 암호화를 위해 고객이 호스팅하는 설치를 마이그레이션하거나 구성하는 방법에 관한 안내는 AES-256 GCM 암호화 사용 문서 페이지를 참고하세요.
CMK를 변경하거나 로컬 키 기반 구성에서 AWS KMS 구성으로(또는 그 반대로) 이동하려면 새 CMK를 만들고 AES-256 GCM 암호화를 입력하면 됩니다.
키 재지정은 오프라인에서 이루어지므로 Looker 인스턴스를 종료해야 합니다. 클러스터링된 Looker 인스턴스의 경우 클러스터의 모든 노드를 종료해야 합니다.
키를 재지정하면 쿼리 결과 캐시를 포함하여 전체 Looker 온디스크 캐시가 무효화됩니다. 따라서 키 재지정을 완료한 후 인스턴스를 시작하면 클라이언트 데이터베이스에 평소보다 많은 부하가 발생할 수 있습니다.
AES-256 GCM 암호화 키를 재지정하려면 다음 절차를 따르세요.
Looker 중지 및 전체 백업 만들기
다음 명령어를 실행합니다.
cd looker
./looker stop
tar -zcvf /tmp/looker-pre-encrypt.tar.gz /home/lookerops/looker --exclude=.cache --exclude=log --exclude=.tmp --exclude=.snapshots --exclude=looker.jar --exclude=authorized_keys --exclude=dr-log --exclude=core
Looker 애플리케이션 데이터를 저장하기 위해 외부 MySQL 데이터베이스를 실행하는 경우 데이터베이스를 개별적으로 백업합니다. 데이터베이스가 MySQL 인스턴스이면 스냅샷을 만듭니다. 데이터베이스가 비교적 작으므로 몇 분 정도만 걸립니다.
Looker가 클러스터링된 경우 계속하기 전에 모든 노드를 중지해야 합니다.
cd looker
./looker stop
나중에 rekey
명령어를 실행할 때 노드가 계속 실행 중이면 명령어가 실패하고 다음 메시지가 표시됩니다. "이 백엔드 Looker 데이터베이스에 연결된 다른 라이브 노드가 있습니다. Looker가 최근 1분 내에 종료된 경우 잠시 후 다시 시도하세요. 그렇지 않으면 클러스터의 모든 노드가 종료되어 있는지 확인합니다."
_SOURCE
및 _DESTINATION
환경 변수 설정
처음에 Looker 인스턴스가 AES-256 GCM 암호화로 이전되거나 구성될 때 Looker가 CMK를 찾을 수 있는 위치를 나타내는 환경 변수가 하나 이상 생성되었습니다. 이러한 변수는 AWS KMS 사용 여부에 따라 달라집니다.
키 재지정 작업은 현재 AWS KMS를 사용하고 있는지, 키 재지정 후 AWS KMS를 사용할지 여부에 따라 추가 환경 변수를 사용합니다. _SOURCE
서픽스가 있는 환경 변수는 Looker가 현재 CMK를 찾을 수 있는 위치를 나타내고, _DESTINATION
서픽스가 있는 환경 변수는 키 재지정 작업 후에 Looker가 CMK를 찾을 수 있는 위치를 나타냅니다.
_SOURCE
변수 설정
현재 구성이 AWS KMS를 사용하는지 여부에 따라 다음 절차 중 하나를 수행하세요.
현재 AWS KMS를 사용하는 경우
처음에 AWS KMS를 사용하여 암호화를 구성한 경우 다음 환경 변수 중 하나 또는 둘 다를 만들었습니다.
LKR_AWS_CMK
: AWSCMK_alias
를 저장합니다.LKR_AWS_CMK_EC
: AWS KMS 키 저장소와 함께 사용되는 암호화 컨텍스트를 정의하는 선택적 변수입니다.
환경 변수를 다시 만듭니다.
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
그런 다음 _SOURCE
변수를 만듭니다. _SOURCE
접미사를 사용하여 다음과 같은 새 변수를 설정합니다.
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
현재 AWS KMS를 사용하지 않는 경우
처음에 AWS 이외의 KMS를 사용하여 암호화를 구성한 경우 CMK를 환경 변수에 저장하는지 아니면 인스턴스의 파일에 저장하는지에 따라 다음 환경 변수 중 하나를 만들었습니다.
LKR_MASTER_KEY_ENV
: CMK를 환경 변수에 저장하면 CMK가 저장됩니다.LKR_MASTER_KEY_FILE
: CMK를 파일에 저장하면 CMK가 포함된 파일의 경로와 파일 이름이 저장됩니다.
구성에 사용된 환경 변수를 다시 만듭니다.
export LKR_MASTER_KEY_FILE=<path_to_key_file>
또는
export LKR_MASTER_KEY_ENV=<CMK_value>
그런 다음 _SOURCE
변수를 만듭니다.
CMK를 파일에 저장하는 경우 다음 변수를 만듭니다.
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
환경 변수에 CMK를 저장하는 경우 다음 변수를 만듭니다.
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
_DESTINATION
변수 설정
키 재지정 작업 후 AWS KMS 사용 여부에 따라 다음 절차 중 하나를 수행합니다.
새 구성에 AWS KMS 사용
새 구성에서 AWS KMS를 사용하는 경우 새 CMK 위치를 나타내는 다음 환경 변수를 만듭니다.
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
새 구성에 AWS KMS 사용하지 않음
새 구성에서 AWS KMS를 사용하지 않는 경우 LKR_MASTER_KEY_FILE_DESTINATION
또는 LKR_MASTER_KEY_ENV_DESTINATION
변수를 사용하여 CMK 대상을 지정할 수 있습니다.
CMK를 파일에 저장하려면 다음 명령어를 실행합니다.
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
또는 환경 변수를 사용하여 CMK를 저장하려면 다음 명령어를 실행합니다.
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
rekey
명령어 실행
다음 명령어를 실행합니다.
./looker rekey
Looker 인스턴스가 데이터베이스 사용자 인증 정보가 포함된 YAML 파일 경로를 제공하는
-d <db.yaml>
또는--internal-db-creds=<db.yaml>
시작 옵션으로 시작되는 경우rekey
명령어에 동일한 옵션을 포함해야 합니다.예를 들면
java -jar looker.jar rekey -d /path/file/db.yaml
입니다.
새 환경 변수 설정
다음 환경 변수 중 하나 이상을 새 구성에 맞게 설정합니다.
새 구성에서 AWS KMS를 사용하는 경우:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
새 구성에서 AWS KMS를 사용하지 않고 CMK를 환경 변수에 저장하는 경우:
export LKR_MASTER_KEY_ENV=<CMK_value>
새 구성에서 AWS KMS를 사용하지 않고 CMK를 파일에 저장하는 경우:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
로컬에 저장된 키에서 AWS KMS로 또는 AWS KMS에서 로컬로 저장된 키로 이동한 경우 이전 구성의 환경 변수가 필요하지 않습니다. 이전 환경 변수를 삭제합니다.
로컬에 저장된 키에서 AWS KMS로 이동한 경우:
unset LKR_MASTER_KEY_FILE
AWS KMS에서 로컬에 저장된 키로 이동한 경우:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Looker 시작
다음 명령어를 실행합니다.
./looker start