자동화 구성 암호화 자동화 에이전트의 로컬 백업 구성 파일 에 있는 민감한 자격 증명 보호합니다. 에이전트 클러스터 구성의 백업 디스크에 저장할 때 비밀번호 및 인증 키를 포함한 민감한 필드를 일반 텍스트로 작성하는 대신 AES-256-GCM을 사용하여 암호화합니다.
이 기능 조직이 PCI-DSS, HIPAA 및 SOC 2와 같은 프레임워크에 대한 컴플라이언스 요구 사항을 충족하는 데 도움이 됩니다.
암호화는 기본값 으로 비활성화되어 있습니다. 이 기능 명시적으로 활성화 때까지 기존 배포는 암호화되지 않은 상태로 유지됩니다.
암호화 방법
Ops Manager 자동화 구성에 대해 세 가지 암호화 방법을 지원합니다.
메서드 | 최적 대상 | 키 암호화 키 (KEK) 소스 |
|---|---|---|
온라인(KMIP) | KMIP 인프라가 있는 환경 | 고객 관리형 KMIP 서버 |
오프라인 | 에어 갭 또는 독립형 환경 | 기계 파생 키 |
기본값 | 자동 컴플라이언스 정렬 | 미사용 데이터 암호화 설정을 따릅니다. |
온라인(KMIP)
팁
KMIP 인프라를 사용할 수 있는 경우 온라인(KMIP ) 모드 사용합니다. 마스터 키는 HSM을 벗어나지 않기 때문에 가장 강력한 보안을 제공합니다.
온라인 모드 는 KMIP 인프라가 있는 환경에 가장 적합합니다. 마스터 키는 외부 KMIP 호환 HSM에 상주하며 디스크에 접촉하지 않습니다. 별도의 부트스트랩 키로 KMIP 인증서 자격 증명 로컬에서 보호하여 자동 재시작을 가능하게 합니다.
참고
이 방법을 사용하려면 기존 KMIP 호환 서버 필요합니다. MongoDB 엔터프라이즈 Advanced의 security.kmip.* 구성과 일치하는 클라이언트 인증서(mTLS) 인증 구성해야 합니다.
온라인 모드 사용하려면 encryptionMethod 를 ONLINE_KMS 로 설정하다 KMIP 서버 세부 정보를 제공합니다.
Parameter | 설명 | 필수 사항 |
|---|---|---|
| KMIP 서버 호스트 이름 또는 IP | 예 |
| KMIP 서버 포트입니다. 기본값: | No |
| CA 인증서 경로(Unix) | 예 |
| CA 인증서 경로(Windows) | 조건부 |
| 클라이언트 인증서 경로(Unix) | 예 |
| 클라이언트 인증서 경로(Windows) | 조건부 |
| 클라이언트 인증서 비밀번호(PEM이 암호화됨 경우) | No |
| KMIP 서버 에 있는 기존 키의 UUID입니다. 비어 있으면 에이전트 자동으로 새 키를 생성합니다. | No |
| KMIP 1.2 (암호화/복호화) 대신 KMIP 1.0/1.1 (생성+가져오기)를 사용합니다. KMIP 서버 KMIP 1.2을(를) 지원 하지 않을 때 사용합니다. | No |
구성 스키마
{ "configEncryption": { "encryptionMethod": "ONLINE_KMS", "kmip": { "serverName": "<hostname>", "port": 5696, "serverCAFile": "<path-unix>", "serverCAFileWindows": "<path-windows>", "clientCertificateFile": "<path-unix>", "clientCertificateFileWindows": "<path-windows>", "clientCertificatePassword": "<password>", "keyIdentifier": "<optional-uuid>", "useLegacyProtocol": false } } }
시작하기 전에
온라인 KMIP 암호화 활성화 전에 다음을 확인합니다.
TLS 핸드셰이크: 다음 명령을 실행하여 핸드셰이크가 성공하고 인증서가 수락되었는지 확인합니다.
openssl s_client -connect <serverName>:<port> \ -CAfile <serverCAFile> -cert <clientCertificateFile> 인증서 권한: 클라이언트 인증서에 필요한 KMIP 작업에 대한 권한이 있는지 확인합니다. KMIP 서버의 관리 콘솔 또는 로그를 확인합니다.
네트워크 연결 가능성: 에이전트 호스팅하다 구성된 포트의 KMIP 서버 에 연결할 수 있는지 확인합니다. 방화벽 규칙, 보안 그룹 및 DNS 확인을 확인합니다.
인증서 만료: 서버 CA와 클라이언트 인증서가 모두 만료되지 않았는지 확인합니다. 확인하려면 실행.
openssl x509 -enddate -noout -in <certFile>
KMIP 서버 권한
클라이언트 인증서는 KMIP 서버 에서 다음 작업에 대한 권한이 있어야 합니다.
KMIP 모드 | 필수 작업 |
|---|---|
기본값(KMIP 1.2) | 대칭 키에서 생성, 암호화, 암호 해독 |
레거시 ( | 생성, 대칭 키 가져오기 |
keyIdentifier를 제공하면 만들기 권한이 필요하지 않습니다. 클라이언트 인증서에 대한 적절한 권한을 구성하려면 KMIP 서버 설명서를 참조하세요.
오프라인
오프라인 모드 는 에어 갭 또는 독립형 환경에 가장 적합합니다. 에이전트 물리적 머신 매개변수와 결합된 고객 제공 UUID에서 암호화 키 파생합니다. 이 메서드는 외부 종속성 필요하지 않습니다.
오프라인 모드 사용하려면 encryptionMethod 을 OFFLINE_SOFTWARE 로 설정하다 다음 매개 변수를 제공합니다.
Parameter | 설명 | 필수 사항 |
|---|---|---|
| 키 파생에 사용되는 UUID입니다. 회전 트리거하다 역할을 합니다. | 예 |
동적 솔트 UUID
dynamicSalt 은(는) 키 파생 프로세스 에 대한 추가 입력 역할을 하는 암호화된 무작위 UUID입니다.
Ops Manager UI: 을 클릭하여 Generate 새 UUID를 자동으로 생성합니다.
공개 API: 암호화된 4 임의의 UUID(버전)를 제공합니다. 안전한 무작위 생성기를 사용하세요. 예측 가능하거나, 순차적이거나, 하드코딩된 UUID를 피하세요.
동적 솔트를 새 UUID로 변경하면 오프라인 모드 의 프라이머리 회전 메커니즘인 키 재유도가 트리거됩니다.
구성 스키마
{ "configEncryption": { "encryptionMethod": "OFFLINE_SOFTWARE", "dynamicSalt": "<UUID>" } }
기본값
배포서버 의 모든 프로세스 에 대해 미사용 데이터 암호화(security.enableEncryption)가 활성화된 경우 명시적인 구성 없이 오프라인 암호화 자동으로 활성화됩니다. 그렇지 않으면 구성이 암호화되지 않은 상태로 유지됩니다.
참고
기본 모드 수동 키 순환을 지원 하지 않습니다.
암호화 구성
Ops Manager UI 또는 공개 API 사용하여 자동화 구성 암호화 구성할 수 있습니다.
Ops Manager UI 통해
Ops Manager 의 프로젝트 수준에서 암호화 구성합니다.
선택한 방법의 필수 필드를 입력합니다.
필드 설명은 온라인(KMIP) 또는 오프라인을 참조하세요.
공개 API 통해
Ops Manager 자동화 구성 엔드포인트를 통해 자동화 구성 암호화 관리 할 수 있습니다.
엔드포인트: PUT /groups/{PROJECT-ID}/automationConfig
configEncryption 자동화 구성 요청 본문에 객체 포함합니다. 전체 요청 및 응답에 대해 자세히 학습 자동화 구성 업데이트를 참조하세요.
Project Automation Admin 이 엔드포인트를 사용하려면 역할 있어야 합니다.
요청 본문
configEncryption 자동화 구성 요청 본문에 객체 포함합니다. 전체 필드 참고 자료는 온라인(KMIP) 또는 오프라인을 참조하세요.
온라인(KMIP):
{ "configEncryption": { "encryptionMethod": "ONLINE_KMS", "kmip": { "serverName": "kmip.example.com", "serverCAFile": "/path/to/ca.pem", "clientCertificateFile": "/path/to/client.pem" } } }
오프라인:
{ "configEncryption": { "encryptionMethod": "OFFLINE_SOFTWARE", "dynamicSalt": "<UUID>" } }
응답 코드
전체 응답 사양은 자동화 구성 업데이트를 참조하세요. 다음 오류 코드는 configEncryption 유효성 검사 에만 해당됩니다.
HTTP 코드 | 설명 | 참고 사항 |
|---|---|---|
| 구성이 초안으로 저장되었습니다. | 빈 JSON 객체 반환합니다. |
|
|
|
|
| 프로젝트 외부에서 managed 락 에 의해 제한된 경우 반환됩니다. |
암호화 비활성화
자동화 구성 암호화 비활성화하려면 암호화 방법을 기본값으로 설정하다 .
참고
프로젝트 에서 미사용 데이터 암호화를 사용하는 배포가 없는 경우 이 변경 사항을 배포 후 암호화 비활성화됩니다.
암호화된 필드
민감한 필드만 암호화됨 됩니다. 포트, 로그 경로, 토폴로지 와 같이 민감하지 않은 운영 데이터는 일반 텍스트로 유지됩니다.
카테고리 | 필드 |
|---|---|
인증 | auth.keyauth.newKeyauth.autoPwdauth.newAutoPwdauth.autoKerberosWindowsPassword |
사용자 자격 증명 | auth.usersWanted.[].initPwdauth.usersWanted.[].scramSha1Creds.saltauth.usersWanted.[].scramSha1Creds.storedKeyauth.usersWanted.[].scramSha1Creds.serverKeyauth.usersWanted.[].scramSha256Creds.saltauth.usersWanted.[].scramSha256Creds.storedKeyauth.usersWanted.[].scramSha256Creds.serverKey |
TLS |
|
LDAP | ldap.bindQueryPasswordldap.newBindQueryPassword |
프로메테우스 | prometheus.passwordprometheus.passwordHashprometheus.passwordSaltprometheus.tlsPemPassword |
BI 커넥터 |
|
암호화 제공자 | encryptionProviders.awsKms.accessKeyIdencryptionProviders.awsKms.secretAccessKeyencryptionProviders.awsKms.sessionTokenencryptionProviders.azureKeyVault.clientIdencryptionProviders.azureKeyVault.tenantIdencryptionProviders.azureKeyVault.secretencryptionProviders.googleCloudKMS.serviceAccountKey |
구성 암호화 |
|
파일 아티팩트
에이전트 는 구성된 백업 디렉토리 에 두 개의 파일을 저장합니다. 에이전트 사용자는 이 디렉토리 에 대한 읽기/ 쓰기 (write) 액세스 있어야 합니다.
file | 설명 | 권한(Unix/ Windows) |
|---|---|---|
| 민감한 필드가 인라인으로 암호화됨 클러스터 구성 |
|
| 래핑된 암호화 키(JSON) |
|
에이전트 원자 패턴 사용하여 파일을 씁니다( 임시 파일 에 쓰기 (write) 다음 이름 바꾸기). 에이전트 쓰기 중에 충돌이 발생하는 경우 일관적인 롤백 보장하기 위해 키 파일 이전에 구성 파일 유지합니다.
경고
이러한 파일은 수정하지 마세요. 에이전트 Ops Manager 연결할 수 없는 경우 이를 사용하여 재시작 후 복구합니다.
키 순환
에이전트 수동 및 자동 키 로테이션을 모두 지원합니다.
수동 회전
암호화 키를 수동으로 로테이션하려면 다음 트리거를 사용합니다.
모드 | 트리거 |
|---|---|
온라인(KMIP) | Ops Manager 에서 KMIP 구성 속성 업데이트 |
오프라인 | Ops Manager 에서 새 동적 솔트 UUID 생성 |
기본값 | 먼저 온라인 또는 오프라인 모드 로 전환합니다. |
자동 회전
에이전트 다음과 같은 경우 암호화 키를 자동으로 순환합니다.
에이전트 프로세스 다시 시작됩니다.
에이전트 버전이 변경됩니다(업그레이드 또는 다운그레이드).
회전해야 하는 경우
다음과 같은 상황에서는 키를 회전합니다.
의심되는 키 손상
조직의 보안 정책에 따른 예정 로테이션
인프라 액세스 와 관련된 인사 변경
고려 사항
다음 조건은 배포서버 의 자동화 구성 암호화 영향을 줄 수 있습니다.
하드웨어 변경: hardware 교체하거나 VM을 마이그레이션하면 에이전트 가 로컬 백업 에 액세스하지 못할 수 있습니다. 에이전트 Ops Manager 에서 새로운 구성을 가져와 자동으로 복구합니다.
VM 복제: 복제된 VM은 동일한 머신 ID를 유지하며 오프라인으로 암호화된 데이터를 해독할 수 있습니다. 복제 격리 보안을 위해 온라인(KMIP) 모드 사용합니다.
에이전트 업그레이드 및 다운그레이드: 에이전트 버전을 변경하면 암호화 아티팩트가 무효화됩니다. 에이전트 는 다시 암호화하기 위해 Ops Manager 에서 새로운 구성을 자동으로 가져옵니다.
Ops Manager 연결: 에이전트 로컬 파일을 해독할 수 없고 Ops Manager 에 연결할 수 없는 경우 오류 상태 되고 연결이 복원될 때까지 재시도합니다.
KMIP 서버 가용성: KMIP 서버 키 래핑 및 래핑 해제를 위한 에이전트 작업 중에 연결할 수 있어야 합니다.
Kubernetes Operator: 연산자 모드 암호화 비활성화합니다. Kubernetes Operator는 시크릿을 별도로 관리합니다.
지연 마이그레이션: 업그레이드 시 기존 배포가 기본값 모드 로 이동합니다. 프로세스 에 대해 미사용 데이터 암호화를 활성화하면 오프라인 암호화 자동으로 활성화됩니다.
보안 아키텍처
암호화 시스템은 필드를 암호화하는 DEK 와 DEK를 보호하는 KEK(키 암호화 키)와 함께 봉투 암호화 사용합니다. 온라인 모드 에서 KEK는 KMIP 호환 HSM에 상주하며 디스크에 접촉하지 않습니다. 오프라인 모드 에서 에이전트 머신별 속성에서 KEK를 파생하여 암호화됨 데이터를 물리적 호스팅하다 에 바인딩합니다.
암호화 알고리즘
다음 표에는 암호화 프로세스 의 각 단계에서 사용되는 암호화 알고리즘이 나열되어 있습니다.
목적 | 알고리즘 | 세부 정보 |
|---|---|---|
필드 암호화 | AES-256-GCM | 256-비트 키, 96-비트 논스, 128-비트 인증 태그를 지정하다. 각 필드 고유한 논스를 사용하며 인증된 데이터(AAD)를 통해 구성 경로에 바인딩되어 변조 또는 필드 재배치를 방지합니다. |
KEK 파생(오프라인) | PBKDF2-HMAC-SHA256 | 무차별 대입 공격에 대한 컴퓨팅 강화를 위해 높은 반복 횟수를 사용하여 KEK를 파생합니다. |
DEK 래핑 | AES 키 랩(RFC 3394) | KEK에 따라 DEK를 보호하기 위한 NIST 승인 알고리즘 . 8바이트 무결성 검사 값이 있는 래핑된 키를 생성합니다. |
DEK 래핑(온라인 KMIP 1.2) | KMIP 서버 측 암호화/복호화 | 마스터 키는 KMIP 서버 벗어나지 않습니다. 서버 DEK를 직접 래핑 및 래핑 해제합니다. |
DEK 래핑(온라인 KMIP 레거시) | AES 키 랩(RFC 3394) | 에이전트 KMIP 서버 에서 키를 검색하고 AES 키 랩에 로컬로 사용한 다음 메모리에서 0으로 만듭니다. |
보안 속성
자동화 구성 암호화 시스템은 다음과 같은 보장 보장합니다.
온라인 모드 부트스트랩: 로컬로 래핑된 별도의 키는 구성에 저장된 KMIP 인증서 자격 증명 보호합니다. 이렇게 하면 에이전트 가 디스크에 일반 텍스트 시크릿을 저장하지 않고 자동 재시작 중에 KMIP 서버 에 인증할 수 있습니다.
원자 쓰기: 에이전트 충돌 안전 원자 패턴 사용하여 구성 및 키 파일을 씁니다.에이전트 쓰기 (write) 중 점 장애로부터 완전히 복구할 수 있습니다.
디스크에 일반 텍스트 시크릿 없음: 암호화 활성화 하면 에이전트 백업 파일 의 모든 자격 증명 필드를 암호화됨 값으로 바꿉니다.
master.key파일 에는 래핑된(암호화됨) 키만 포함되어 있습니다.
보안 모범 사례
자동화 구성 암호화 배포서버 강화하려면 다음 권장 사항을 따르세요.
KMIP 인프라를 사용할 수 있는 경우 온라인(KMIP)을 선호합니다. 가장 강력한 보안을 제공합니다.
레거시 프로토콜 통해 KMIP 1.2 ( 기본값 )을 사용합니다. 마스터 키는 HSM을 벗어나지 않습니다.
조직의 정책에 따라 정기적으로 키를 순환합니다.
에이전트의 config 디렉토리 에 대한 파일 시스템 액세스 제한합니다.
오프라인 모드 에서 hardware 변경하거나 VM을 마이그레이션하기 전에 Ops Manager 연결을 확인하세요. 에이전트 다음에 성공적인 폴링에서 새로운 구성을 가져와 자동으로 복구합니다.
문제 해결
다음 섹션에서는 일반적인 문제, 강제 복구 단계 및 에이전트 로그 태그에 대해 설명합니다.
일반적인 문제
다음 표에는 일반적인 증상, 가능한 원인 및 해결 단계가 나열되어 있습니다.
증상 | 가능한 원인 | 해상도 |
|---|---|---|
에이전트가 스타트업 시 오류 상태 됨 | 하드웨어 또는 머신 ID가 변경됨(오프라인 모드) | Ops Manager 연결을 복원합니다. 에이전트 자동으로 복구됩니다. |
에이전트가 스타트업 시 오류 상태 됨 | KMIP 서버 연결할 수 없거나 인증서가 만료되었습니다(온라인 모드). | KMIP 연결 및 인증서 유효성을 확인합니다. 필요한 경우 Ops Manager 에서 자격 증명 업데이트합니다. |
로그에 ' 객체 찾을 수 없음: KEY_ID'가 표시됨 | KMIP에서 암호화 키를 사용할 수 없음 | 다음 옵션 중 하나를 사용합니다.
|
| TLS 핸드셰이크 거부됨 |
|
| KMIP 서버 작업을 거부했습니다. | 클라이언트 인증서에 필요한 권한(생성/암호화/복호화 또는 생성/가져오기)이 있는지 확인합니다. |
백업 파일이 업데이트되지 않음 | 파일 권한 또는 디스크 공간 부족 | 에이전트 사용자에게 config 디렉토리 에 대한 쓰기 (write) 액세스 있는지 확인합니다. |
업그레이드 또는 다운그레이드 후 암호 해독 실패 | 암호화 아티팩트는 버전에 종속됩니다. | 에이전트 Ops Manager 에서 새로운 구성을 자동으로 가져옵니다. |
강제 복구
에이전트 로컬 백업 해독할 수 없고 Ops Manager 에 연결할 수 있는 경우 암호화 상태 재설정할 수 있습니다.
경고
에이전트 를 시작하기 전에 Ops Manager 연결할 수 있어야 합니다. 연결이 없으면 에이전트 대체할 구성이 없으며 오류 상태 됩니다.
복구의 일부로 암호화 비활성화하려면 암호화 비활성화를 참조하세요.
Log Tags
다음 로그 태그는 에이전트 로그에서 암호화 관련 이벤트를 식별합니다.
Tag | 수준 | 설명 |
|---|---|---|
| 정보 | 쓰기 작업이 시작되었습니다. |
| DEBUG | 쓰기 완료 |
| 정보 | 읽기/복호화 작업 시작 |
| DEBUG | 읽기/복호화 완료 |
| DEBUG | 캐시 에서 제공되는 암호화 키 |
| 정보 | 키가 캐시되지 않았습니다. 재생성 |
| 정보 | 키 순환 트리거됨 |
| 오류 | 키 순환 실패 |
| 정보 | 암호화 방법 변경됨 |
| DEBUG | 암호화 키 래핑(메서드 포함) |
| DEBUG | 래핑되지 않은 암호화 키(메서드 포함) |
| DEBUG | 필드 경로 암호화됨 (경로만, 값 없음) |
| DEBUG | 필드 경로 해독됨(경로만, 값 없음) |
| 오류 | 암호화 작업 실패 |
| 오류 | 암호 해독 작업 실패 |
| 오류 | 암호화 하위 시스템에 예기치 않은 오류가 발생했습니다. |
| DEBUG | KMIP TLS 연결 설정 |
| 오류 | KMIP TLS 연결 실패( 서버, 포트, 재시도 횟수 포함) |
| DEBUG | KMIP 작업 완료(작업 유형, 키 ID, 기간) |
| 오류 | KMIP 작업 실패(작업 유형, 키 ID, 오류) |
| 정보 | KMIP 서버 에 생성된 새 키(키 ID) |
| DEBUG | 재사용된 기존 KMIP 키(키 ID, 소스) |
| DEBUG | KMIP TLS 구성 빌드(인증서 경로, 비밀번호로 보호된 플래그) |
참고
Ops Manager 민감한 값을 기록하지 않습니다.