Docs Menu
Docs Home
/ /

자동화 구성 암호화

자동화 구성 암호화 자동화 에이전트의 로컬 백업 구성 파일 에 있는 민감한 자격 증명 보호합니다. 에이전트 클러스터 구성의 백업 디스크에 저장할 때 비밀번호 및 인증 키를 포함한 민감한 필드를 일반 텍스트로 작성하는 대신 AES-256-GCM을 사용하여 암호화합니다.

이 기능 조직이 PCI-DSS, HIPAA 및 SOC 2와 같은 프레임워크에 대한 컴플라이언스 요구 사항을 충족하는 데 도움이 됩니다.

암호화는 기본값 으로 비활성화되어 있습니다. 이 기능 명시적으로 활성화 때까지 기존 배포는 암호화되지 않은 상태로 유지됩니다.

Ops Manager 자동화 구성에 대해 세 가지 암호화 방법을 지원합니다.

메서드
최적 대상
키 암호화 키 (KEK) 소스

온라인(KMIP)

KMIP 인프라가 있는 환경

고객 관리형 KMIP 서버

오프라인

에어 갭 또는 독립형 환경

기계 파생 키

기본값

자동 컴플라이언스 정렬

미사용 데이터 암호화 설정을 따릅니다.

KMIP 인프라를 사용할 수 있는 경우 온라인(KMIP ) 모드 사용합니다. 마스터 키는 HSM을 벗어나지 않기 때문에 가장 강력한 보안을 제공합니다.

온라인 모드 는 KMIP 인프라가 있는 환경에 가장 적합합니다. 마스터 키는 외부 KMIP 호환 HSM에 상주하며 디스크에 접촉하지 않습니다. 별도의 부트스트랩 키로 KMIP 인증서 자격 증명 로컬에서 보호하여 자동 재시작을 가능하게 합니다.

참고

이 방법을 사용하려면 기존 KMIP 호환 서버 필요합니다. MongoDB 엔터프라이즈 Advanced의 security.kmip.* 구성과 일치하는 클라이언트 인증서(mTLS) 인증 구성해야 합니다.

온라인 모드 사용하려면 encryptionMethodONLINE_KMS 로 설정하다 KMIP 서버 세부 정보를 제공합니다.

Parameter
설명
필수 사항

kmip.serverName

KMIP 서버 호스트 이름 또는 IP

kmip.port

KMIP 서버 포트입니다. 기본값: 5696.

No

kmip.serverCAFile

CA 인증서 경로(Unix)

kmip.serverCAFileWindows

CA 인증서 경로(Windows)

조건부

kmip.clientCertificateFile

클라이언트 인증서 경로(Unix)

kmip.clientCertificateFileWindows

클라이언트 인증서 경로(Windows)

조건부

kmip.clientCertificatePassword

클라이언트 인증서 비밀번호(PEM이 암호화됨 경우)

No

kmip.keyIdentifier

KMIP 서버 에 있는 기존 키의 UUID입니다. 비어 있으면 에이전트 자동으로 새 키를 생성합니다.

No

kmip.useLegacyProtocol

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 1.2)

대칭 키에서 생성, 암호화, 암호 해독

레거시 (useLegacyProtocol: true)

생성, 대칭 키 가져오기

keyIdentifier를 제공하면 만들기 권한이 필요하지 않습니다. 클라이언트 인증서에 대한 적절한 권한을 구성하려면 KMIP 서버 설명서를 참조하세요.

오프라인 모드 는 에어 갭 또는 독립형 환경에 가장 적합합니다. 에이전트 물리적 머신 매개변수와 결합된 고객 제공 UUID에서 암호화 키 파생합니다. 이 메서드는 외부 종속성 필요하지 않습니다.

오프라인 모드 사용하려면 encryptionMethodOFFLINE_SOFTWARE 로 설정하다 다음 매개 변수를 제공합니다.

Parameter
설명
필수 사항

dynamicSalt

키 파생에 사용되는 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 의 프로젝트 수준에서 암호화 구성합니다.

1

Settings, Admin Project Settings, Automation Config Encryption 순서대로 클릭합니다.

2

Online (KMIP), Offline 또는 Default 를 선택합니다.

3

필드 설명은 온라인(KMIP) 또는 오프라인을 참조하세요.

4

Save를 클릭한 다음 변경 사항을 검토 하고 배포 .

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 코드
설명
참고 사항

200 OK

구성이 초안으로 저장되었습니다.

빈 JSON 객체 반환합니다. {}

400 Bad Request

INVALID_CONFIG_ENCRYPTION_SETTINGS

configEncryption 객체 내부 유효성 검사 에 실패한 경우 반환됩니다.

403 Forbidden

CHANGE_NOT_ALLOWED_EXTERNAL_SYSTEM

프로젝트 외부에서 managed 락 에 의해 제한된 경우 반환됩니다.

자동화 구성 암호화 비활성화하려면 암호화 방법을 기본값으로 설정하다 .

1

Settings, Admin Project Settings, Automation Config Encryption 순서대로 클릭합니다.

2

암호화 방법을 Default로 설정합니다.

3

Save를 클릭한 다음 변경 사항을 검토 하고 배포 .

참고

프로젝트 에서 미사용 데이터 암호화를 사용하는 배포가 없는 경우 이 변경 사항을 배포 후 암호화 비활성화됩니다.

민감한 필드만 암호화됨 됩니다. 포트, 로그 경로, 토폴로지 와 같이 민감하지 않은 운영 데이터는 일반 텍스트로 유지됩니다.

카테고리
필드

인증

auth.key
auth.newKey
auth.autoPwd
auth.newAutoPwd
auth.autoKerberosWindowsPassword

사용자 자격 증명

auth.usersWanted.[].initPwd
auth.usersWanted.[].scramSha1Creds.salt
auth.usersWanted.[].scramSha1Creds.storedKey
auth.usersWanted.[].scramSha1Creds.serverKey
auth.usersWanted.[].scramSha256Creds.salt
auth.usersWanted.[].scramSha256Creds.storedKey
auth.usersWanted.[].scramSha256Creds.serverKey

TLS

tls.autoPEMKeyFilePwd

LDAP

ldap.bindQueryPassword
ldap.newBindQueryPassword

프로메테우스

prometheus.password
prometheus.passwordHash
prometheus.passwordSalt
prometheus.tlsPemPassword

BI 커넥터

mongosqlds.[].tlsPEMKeyPassword

암호화 제공자

encryptionProviders.awsKms.accessKeyId
encryptionProviders.awsKms.secretAccessKey
encryptionProviders.awsKms.sessionToken
encryptionProviders.azureKeyVault.clientId
encryptionProviders.azureKeyVault.tenantId
encryptionProviders.azureKeyVault.secret
encryptionProviders.googleCloudKMS.serviceAccountKey

구성 암호화

configEncryption.kmip.clientCertificatePassword

에이전트 는 구성된 백업 디렉토리 에 두 개의 파일을 저장합니다. 에이전트 사용자는 이 디렉토리 에 대한 읽기/ 쓰기 (write) 액세스 있어야 합니다.

file
설명
권한(Unix/ Windows)

mms-cluster-config-backup.json

민감한 필드가 인라인으로 암호화됨 클러스터 구성

0600 / 0600

master.key

래핑된 암호화 키(JSON)

0400 / 0600

에이전트 원자 패턴 사용하여 파일을 씁니다( 임시 파일 에 쓰기 (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 에서 자격 증명 업데이트합니다. openssl s_client 를 실행하여 TLS 핸드셰이크를 확인하고, 인증서 만료를 확인하고, 방화벽 및 DNS 설정을 확인합니다.

로그에 ' 객체 찾을 수 없음: KEY_ID'가 표시됨

KMIP에서 암호화 키를 사용할 수 없음

다음 옵션 중 하나를 사용합니다.

  • KMIP에 지정된 키 ID 로 키를 복원합니다.

  • Ops Manager 통해 키를 순환합니다.

  • master.key를 삭제하고 에이전트 다시 시작한 다음 Ops Manager 에서 새 구성을 가져와서 새 KMIP 키 ID 만들 수 있도록 허용합니다.

agent_kmip_connect_failed 로그에서

TLS 핸드셰이크 거부됨

serverCAFile 이(가) KMIP 서버 CA와 일치하는지 확인합니다. 서버 에서 clientCertificateFile 을(를) 수락하는지 확인합니다. KMIP 서버 로그에서 인증 실패를 확인합니다.

agent_kmip_operation_failed 로그에서

KMIP 서버 작업을 거부했습니다.

클라이언트 인증서에 필요한 권한(생성/암호화/복호화 또는 생성/가져오기)이 있는지 확인합니다. keyIdentifier 에 키 UUID가 존재하고 서버 에서 활성 상태 인지 확인합니다.

백업 파일이 업데이트되지 않음

파일 권한 또는 디스크 공간 부족

에이전트 사용자에게 config 디렉토리 에 대한 쓰기 (write) 액세스 있는지 확인합니다.

업그레이드 또는 다운그레이드 후 암호 해독 실패

암호화 아티팩트는 버전에 종속됩니다.

에이전트 Ops Manager 에서 새로운 구성을 자동으로 가져옵니다.

에이전트 로컬 백업 해독할 수 없고 Ops Manager 에 연결할 수 있는 경우 암호화 상태 재설정할 수 있습니다.

1

영향을 받는 호스팅하다 에서 자동화 에이전트 중지합니다.

2

에이전트의 백업 디렉토리 에서 master.key 을(를) 삭제합니다. 이 디렉토리 mms-cluster-config-backup.json를 포함하는 디렉토리와 동일하며, 일반적으로 에이전트 구성 파일 의 mmsConfigBackup 설정으로 구성됩니다.

3

에이전트 를 시작합니다. Ops Manager 에서 새로운 구성을 가져와서 다시 암호화합니다.

경고

에이전트 를 시작하기 전에 Ops Manager 연결할 수 있어야 합니다. 연결이 없으면 에이전트 대체할 구성이 없으며 오류 상태 됩니다.

복구의 일부로 암호화 비활성화하려면 암호화 비활성화를 참조하세요.

다음 로그 태그는 에이전트 로그에서 암호화 관련 이벤트를 식별합니다.

Tag
수준
설명

agent_encryption_write_start

정보

쓰기 작업이 시작되었습니다.

agent_encryption_write_complete

DEBUG

쓰기 완료

agent_decryption_read_start

정보

읽기/복호화 작업 시작

agent_decryption_read_complete

DEBUG

읽기/복호화 완료

agent_dek_cache_hit

DEBUG

캐시 에서 제공되는 암호화 키

agent_dek_cache_miss

정보

키가 캐시되지 않았습니다. 재생성

agent_encryption_key_rotation

정보

키 순환 트리거됨

agent_encryption_key_rotation_failure

오류

키 순환 실패

agent_encryption_method_transition

정보

암호화 방법 변경됨

agent_encryption_dek_wrapped

DEBUG

암호화 키 래핑(메서드 포함)

agent_encryption_dek_unwrapped

DEBUG

래핑되지 않은 암호화 키(메서드 포함)

agent_encryption_field_encrypted

DEBUG

필드 경로 암호화됨 (경로만, 값 없음)

agent_decryption_field_decrypted

DEBUG

필드 경로 해독됨(경로만, 값 없음)

agent_encryption_failure

오류

암호화 작업 실패

agent_decryption_failure

오류

암호 해독 작업 실패

agent_encryption_unexpected_error

오류

암호화 하위 시스템에 예기치 않은 오류가 발생했습니다.

agent_kmip_connect

DEBUG

KMIP TLS 연결 설정

agent_kmip_connect_failed

오류

KMIP TLS 연결 실패( 서버, 포트, 재시도 횟수 포함)

agent_kmip_operation

DEBUG

KMIP 작업 완료(작업 유형, 키 ID, 기간)

agent_kmip_operation_failed

오류

KMIP 작업 실패(작업 유형, 키 ID, 오류)

agent_kmip_key_created

정보

KMIP 서버 에 생성된 새 키(키 ID)

agent_kmip_key_reused

DEBUG

재사용된 기존 KMIP 키(키 ID, 소스)

agent_kmip_tls

DEBUG

KMIP TLS 구성 빌드(인증서 경로, 비밀번호로 보호된 플래그)

참고

Ops Manager 민감한 값을 기록하지 않습니다.

돌아가기

스냅샷 암호화

이 페이지의 내용