Azure Red Hat OpenShift에서 고객 관리형 키를 사용하여 OS 디스크 암호화
기본적으로 Azure Red Hat OpenShift 클러스터에 있는 가상 머신의 OS 디스크는 Microsoft Azure에서 관리하는 자동 생성된 키로 암호화되었습니다. 추가 보안을 위해 고객은 Azure Red Hat OpenShift 클러스터를 배포할 때 자체 관리형 키로 OS 디스크를 암호화할 수 있습니다. 이 기능을 사용하면 CMK(고객 관리형 키)로 기밀 데이터를 암호화하여 더 세밀한 제어가 가능합니다.
고객 관리형 키를 사용하여 만든 클러스터에는 해당 키로 사용하도록 설정된 기본 스토리지 클래스가 있습니다. 따라서 OS 디스크와 데이터 디스크는 모두 이러한 키로 암호화됩니다. 고객 관리형 키는 Azure Key Vault에 저장됩니다.
Azure Key Vault를 사용하여 키를 만들고 유지 관리하는 방법에 대한 자세한 내용은 Microsoft Azure 설명서의 Azure Disk Storage의 서버 쪽 암호화를 참조하세요.
호스트 기반 암호화를 사용하면, Azure Red Hat OpenShift 에이전트 노드 VM의 VM 호스트에 저장된 데이터는 미사용 시 암호화되고 스토리지 서비스로 암호화되어 흐릅니다. 호스트 기반 암호화는 임시 디스크가 플랫폼 관리형 키를 사용하여 미사용 시 암호화되는 것을 의미합니다.
OS 및 데이터 디스크의 캐시는 해당 디스크에 설정된 암호화 유형에 따라 플랫폼 관리형 키 또는 고객 관리형 키를 사용하여 미사용 시 암호화됩니다. 기본적으로 Azure Red Hat OpenShift를 사용하는 경우 OS 및 데이터 디스크는 플랫폼 관리형 키를 사용하여 미사용 시 암호화됩니다. 즉, 이러한 디스크에 대한 캐시도 플랫폼 관리형 키를 사용하여 기본적으로 미사용 시 암호화됩니다.
아래 암호화 단계에 따라 사용자 고유의 관리형 키를 지정할 수 있습니다. 이러한 디스크의 캐시도 이 단계에서 지정한 키를 사용하여 암호화됩니다.
제한 사항
Azure에서 Key Vault 및 디스크 암호화 집합을 유지 관리하는 것은 고객의 책임입니다. 키를 유지 관리하지 않으면 Azure Red Hat OpenShift 클러스터가 손상됩니다. VM의 작동이 중지되고 그 결과, 전체 Azure Red Hat OpenShift 클러스터의 작동이 중지됩니다.
Azure Red Hat OpenShift 엔지니어링 팀은 키에 액세스할 수 없습니다. 따라서 키를 백업, 복제 또는 검색할 수 없습니다.
디스크 암호화 집합을 사용하여 암호화 키를 관리하는 방법에 대한 자세한 내용은 Microsoft Azure 설명서에서 Azure Disk Storage의 서버 쪽 암호화를 참조하세요.
필수 조건
권한 확인. 기여자/사용자 액세스 관리자 권한 또는 소유자 권한이 있어야 합니다.
Azure 구독이 여러 개 있는 경우 리소스 공급자를 등록합니다. 등록 세부 정보는 리소스 공급자 등록을 참조하세요.
구독에서 EncryptionAtHost 기능을 사용 설정해야 합니다. 다음을 실행하여 활성화할 수 있습니다.
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
다음을 실행하여 기능의 현재 상태를 확인할 수 있습니다.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
두 개의 빈 서브넷이 있는 가상 네트워크 만들기
두 개의 빈 서브넷이 있는 가상 네트워크를 만듭니다. 요구 사항을 충족하는 기존 가상 네트워크가 있는 경우 이 단계를 건너뛸 수 있습니다. 가상 네트워크를 만드는 절차를 검토하려면 두 개의 빈 서브넷이 포함된 가상 네트워크 만들기를 참조하세요.
Azure Key Vault 인스턴스 만들기
Azure Key Vault 인스턴스를 사용하여 키를 저장해야 합니다. 제거 보호를 사용하는 새 키 자격 증명 모음을 만듭니다. 그런 다음, Key Vault 내에 새 키를 만들어 고유한 사용자 지정 키를 저장합니다.
- 다음과 같이 더 많은 환경 사용 권한을 설정합니다.
export KEYVAULT_NAME=$USER-enckv export KEYVAULT_KEY_NAME=$USER-key export DISK_ENCRYPTION_SET_NAME=$USER-des
- Key Vault와 Key Vault의 키를 만듭니다.
az keyvault create -n $KEYVAULT_NAME \ -g $RESOURCEGROUP \ -l $LOCATION \ --enable-purge-protection true az keyvault key create --vault-name $KEYVAULT_NAME \ -n $KEYVAULT_KEY_NAME \ --protection software KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv) KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --query "[key.kid]" -o tsv)
Azure 디스크 암호화 집합 만들기
Azure 디스크 암호화 집합은 Azure Red Hat OpenShift 클러스터의 디스크에 대한 참조 지점으로 사용됩니다. 이전 단계에서 만든 Azure Key Vault에 연결되고 해당 위치에서 고객 관리형 키를 가져옵니다.
az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME \
-l $LOCATION \
-g $RESOURCEGROUP \
--source-vault $KEYVAULT_ID \
--key-url $KEYVAULT_KEY_URL
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCEGROUP --query 'id' -o tsv)
DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME \
-g $RESOURCEGROUP \
--query "[identity.principalId]" \
-o tsv)
Key Vault에 액세스할 수 있도록 디스크 암호화 집합에 대한 권한 부여
이전 단계에서 만든 디스크 암호화 집합을 사용하고 디스크 암호화 집합에 대한 권한을 부여하여 Azure Key Vault에 액세스하고 사용합니다.
az keyvault set-policy -n $KEYVAULT_NAME \
-g $RESOURCEGROUP \
--object-id $DES_IDENTITY \
--key-permissions wrapkey unwrapkey get
Azure Red Hat OpenShift 클러스터 만들기
고객 관리형 키를 사용할 Azure Red Hat OpenShift 클러스터를 만듭니다.
참고 항목
기존 ARO 클러스터에서 CMK를 사용하도록 설정하는 것은 마스터 노드가 아닌 작업자 노드에서만 가능합니다. 컴퓨터셋 CR을 통한 컴퓨터 API를 사용하여 이를 달성할 수 있습니다. 자세한 내용은 컴퓨터 집합에 대한 고객 관리 암호화 키 사용 및 컴퓨팅 컴퓨터 집합 수정을 참조하세요.
az aro create --resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
Azure Red Hat OpenShift 클러스터를 만들면 모든 VM은 고객 관리형 암호화 키로 암호화됩니다.
키를 올바르게 구성했는지 확인하려면 다음 명령을 실행합니다.
- 클러스터 VM, 디스크 등이 있는 클러스터 리소스 그룹의 이름을 가져옵니다.
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
- 디스크에 올바른 디스크 암호화 집합이 연결되어 있는지 확인합니다.
출력에 있는az disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
diskEncryptionSetId
필드는 Azure Red Hat OpenShift 클러스터를 만드는 동안 지정한 디스크 암호화 집합을 가리켜야 합니다.