인증서 및 키 기술 노트

Azure 키 저장소

Multicloud Defense은(는) 퍼블릭 클라우드 제공자가 제공하는 여러 암호 관리 시스템과 통합되어 TLS 암호 해독에 사용할 인증서에 해당하는 개인 키를 저장합니다. 이 섹션에서는 Azure Key Vault에 저장된 인증서 개인 키를 검색하는 단계를 확인할 수 있습니다. Multicloud Defense은 Azure Key Vault 시크릿을 통한 개인 키 검색을 지원합니다.

Azure 키 저장소 및 사용자 할당 관리 ID 생성

Multicloud Defense은 사용자 할당 관리 ID를 사용하여 Azure 키 저장소 암호에 액세스합니다. 다음 단계에서는 키 저장소를 생성하는 방법과 관리 ID에 비밀에 액세스하는 데 필요한 권한을 부여하는 방법을 보여줍니다.

Procedure


Step 1

새 사용자 할당 관리 ID를 생성합니다.

Step 2

키 저장소(예: mcd-key-vault를 생성합니다.

Step 3

새로 생성된 키 저장소에서 Access Policies(액세스 정책)로 이동합니다.

Step 4

Add Access Policy(액세스 정책 추가)를 선택합니다.

Step 5

비밀 권한을 할당합니다: Get.

Step 6

Principal(보안 주체)을 선택합니다.

Step 7

Managed Identity(관리되는 ID)를 선택합니다.

Step 8

키 저장소 구성을 유지한 다음 Access Control (IAM)(액세스 제어(IAM)) > Select Add(추가 선택) > Role Assignment(역할 할당)로 이동합니다.

Step 9

Reader Role(독자 역할)을 선택합니다.

Step 10

Reader Role(독자 역할)을 선택하고 선택 필드에서 관리되는 ID를 검색합니다.

Step 11

Save(저장)를 클릭합니다.


Azure 키 저장소 암호에 개인 키 저장

생성한 Azure 키 저장소의 secrets 폴더로 암호에 대한 개인 키를 가져옵니다. 개인 키는 여러 줄 문자열이므로 Azure Cloud Shell을 통해 가져올 수 있습니다.

Azure Cloud Shell을 시작하고 다음 명령을 실행합니다.


az keyvault secret set --file <privatekey file> --encoding ascii --vault-name <key vault name> --name <secret name>

새 파일을 생성하고 Azure Cloud Shell에서 텍스트 편집기(vi)를 사용하여 새 파일을 만들고 개인 키의 내용을 붙여넣은 다음 저장하면 키 파일이 생성됩니다.

사용자 할당 관리 ID로 Valtix 게이트웨이 구성

Before you begin

Azure에 구축된 Multicloud Defense 게이트웨이Azure 키 저장소 및 사용자 할당 관리 ID에 지정된 사용자 관리 ID로 구성되어 있는지 확인해야 합니다.

Procedure


Step 1

이전 단계에서 생성한 사용자 할당 ID의 리소스 ID를 복사합니다.

Step 2

Managed Identities(관리 ID)로 이동합니다.

Step 3

Multicloud Defense 게이트웨이에 대해 생성된 Managed Identities(관리 ID)를 클릭합니다.

Step 4

Property(속성)를 선택합니다.

Step 5

Resource ID(리소스 ID) 필드 오른쪽에 있는 아이콘을 선택하여 ID를 복사합니다.

Step 6

User Assigned Identity ID(사용자 할당 ID ID) 필드 아래의 Azure 게이트웨이 Multicloud Defense 게이트웨이 구성에 이 리소스 ID를 붙여넣습니다.


개인 키 검색을 위한 Multicloud Defense 구성

시작하기 전에 Azure에 구축된 Multicloud Defense 게이트웨이Azure 키 저장소 및 사용자가 할당한 관리 ID에 지정된 사용자 관리 ID로 구성되어 있는지 확인하십시오.

Azure 키 저장소 암호의 개인 키와 연결된 필드에 인증서 본문을 붙여넣습니다.

생성한 Multicloud Defense 인증서는 Multicloud Defense 컨트롤러에서 서비스를 정의할 때 암호 해독 프로파일과 함께 사용할 수 있습니다.

자체 서명된 루트 CA 생성

자체 서명된 루트 CA(인증 기관)를 생성합니다.


openssl genrsa -out myca.key 2048
# password protect key: openssl genrsa -out myca.key -des3 2048
openssl req -x509 -new -key myca.key -sha384 -days 1825 -out myca.crt \
  -subj "/C=US/ST=CA/L=Santa Clara/O=MyOrg/OU=SecurityOU/CN=rootca.myorg.com/emailAddress=rootca@myorg.com"

이 루트 CA는 사용자(클라이언트) 머신에 신뢰할 수 있는 루트 CA로 설치해야 합니다.


Note


MacOS를 사용하여 셀프 서명한 인증서를 생성하면 포워드 및 리버스 프록시 시나리오에 사용할 수 있는 적절한 인증서가 생성되지 않습니다. 인증서에서는 Is CA 옵션이 True로 설정되어 있어야 하며, MacOS를 사용하여 생성된 인증서는 그렇지 않습니다. 셀프 서명 인증서는 Multicloud Defense UI(Certificates(인증서)(Certificates(인증서)(Certificates)) - Create(생성(Create)) - Generate(생성) 내에서 또는 Linux를 사용하여 생성하는 것이 좋습니다.


자체 서명 루트 CA에서 서명한 인증서 생성

위의 루트 인증 기관(CA)에서 서명한 인증서를 생성합니다. 이 인증서는 애플리케이션에서 사용할 수 있습니다.


openssl genrsa -out app1.key 2048
# password protect key: openssl genrsa -out -des3 app1.key 2048 
openssl req -new -key app1.key -out app1.csr \
  -subj "/C=US/ST=CA/L=Santa Clara/O=MyOrg/OU=AppOU/CN=app1.myorg.com/emailAddress=app1@myorg.com"
openssl x509 -req -in app1.csr -CA myca.crt -CAkey myca.key -out app1.crt -sha384\
  -days 365 -CAcreateserial -extensions SAN \
  -extfile <(printf " [SAN]\nbasicConstraints=CA:false\nsubjectAltName=DNS:app1.myorg.com,DNS:app1- 1.myorg.com,IP:192.168.10.21,IP:192.168.10.22")

루트 CA에 의해 서명된 중간 CA 생성

루트 CA(인증 기관)를 사용하여 앱 인증서에 서명하지 않으려면 루트 CA가 서명한 중간 CA를 생성한 다음 중간 CA를 사용하여 앱 인증서에 서명합니다. 앱 인증서에 중간 인증서를 추가합니다. 이 시점에서 앱 인증서에 체인으로 연결된 2개의 인증서가 있습니다.


openssl genrsa -out interca.key 2048
# password protect key: openssl genrsa -out -des3 interca.key 2048
openssl req -new -key interca.key -out interca.csr \
  -subj "/C=US/ST=CA/L=Santa Clara/O=MyOrg/OU=InterSecurityOU/CN=interca1.myorg.com/emailAddress=interca1@myorg.com"
openssl x509 -req -in interca.csr -CA myca.crt -CAkey myca.key -out interca.crt - sha384 \
  -days 365 -CAcreateserial -extensions SAN \
  -extfile <(printf "[SAN]\nbasicConstraints=CA:true")

중간 CA를 사용하여 서명된 앱 인증서


openssl genrsa -out app1.key 2048
# password protect key: openssl genrsa -out -des3 app1.key 2048 
openssl req -new -key app1.key -out app1.csr \
  -subj "/C=US/ST=CA/L=Santa Clara/O=MyOrg/OU=AppOU/CN=app1.myorg.com/emailAddress=app1@myorg.com" 
openssl x509 -req -in app1.csr -CA interca.crt -CAkey interca.key -out app1.crt - sha384 \
  -days 365 -CAcreateserial -extensions SAN \
  -extfile <(printf " [SAN]\nbasicConstraints=CA:false\nsubjectAltName=DNS:app1.myorg.com,DNS:app1- 1.myorg.com,IP:192.168.10.21,IP:192.168.10.22")

app1.crt 및 interca.crt 파일을 연결하여 결합된 인증서를 생성하고, 이를 애플리케이션에서 사용합니다. 루트 CA는 클라이언트 머신에 신뢰할 수 있는 루트 CA로 설치해야 합니다.

호스트에서 루트 CA를 신뢰할 수 있는 CA로 설치

OS

명령

Ubuntu

인증서 파일을 /usr/local/share/ca-certificates로 복사합니다. sudo update-ca-certificates 명령을 실행합니다.

CentOS

인증서 파일을 /etc/pki/ca-trust/source/anchors에 복사합니다. sudo update-ca-trust extract 명령을 실행합니다.

Windows

파일을 더블 클릭하고 신뢰할 수 있는 루트에 인증서를 추가하거나 certutil -addstore "Root" <crt-file> 명령을 실행합니다.