4장. Azure에 대한 사용자 관리 암호화 활성화
OpenShift Container Platform 버전 4.12에서는 Azure에서 사용자 관리 암호화 키를 사용하여 클러스터를 설치할 수 있습니다. 이 기능을 활성화하려면 설치 전에 Azure DiskEncryptionSet을 준비하고 install-config.yaml
파일을 수정한 다음 설치 후 단계를 수행할 수 있습니다.
4.1. Azure 디스크 암호화 세트 준비
OpenShift Container Platform 설치 프로그램에서는 사용자 관리 키와 함께 기존 디스크 암호화 세트를 사용할 수 있습니다. 이 기능을 활성화하려면 Azure에서 디스크 암호화 세트를 생성하고 설치 프로그램에 키를 제공할 수 있습니다.
프로세스
다음 명령을 실행하여 Azure 리소스 그룹에 대해 다음 환경 변수를 설정합니다.
$ export RESOURCEGROUP="<resource_group>" \1 LOCATION="<location>" 2
다음 명령을 실행하여 Azure Key Vault 및 디스크 암호화 세트에 대해 다음 환경 변수를 설정합니다.
$ export KEYVAULT_NAME="<keyvault_name>" \1 KEYVAULT_KEY_NAME="<keyvault_key_name>" \2 DISK_ENCRYPTION_SET_NAME="<disk_encryption_set_name>" 3
다음 명령을 실행하여 Azure 서비스 주체의 ID에 대한 환경 변수를 설정합니다.
$ export CLUSTER_SP_ID="<service_principal_id>" 1
- 1
- 이 설치에 사용할 서비스 주체의 ID를 지정합니다.
다음 명령을 실행하여 Azure에서 호스트 수준 암호화를 활성화합니다.
$ az feature register --namespace "Microsoft.Compute" --name "EncryptionAtHost"
$ az feature show --namespace Microsoft.Compute --name EncryptionAtHost
$ az provider register -n Microsoft.Compute
다음 명령을 실행하여 디스크 암호화 세트 및 관련 리소스를 보유하는 Azure 리소스 그룹을 생성합니다.
$ az group create --name $RESOURCEGROUP --location $LOCATION
다음 명령을 실행하여 Azure 키 자격 증명 모음을 생성합니다.
$ 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
다음 명령을 실행하여 키 자격 증명 모음의 ID를 캡처합니다.
$ KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
다음 명령을 실행하여 키 자격 증명 모음의 키 URL을 캡처합니다.
$ KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name \ $KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)
다음 명령을 실행하여 디스크 암호화 세트를 생성합니다.
$ az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME -l $LOCATION -g \ $RESOURCEGROUP --source-vault $KEYVAULT_ID --key-url $KEYVAULT_KEY_URL
다음 명령을 실행하여 키 자격 증명 모음에 대한 DiskEncryptionSet 리소스 액세스 권한을 부여합니다.
$ DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \ $RESOURCEGROUP --query "[identity.principalId]" -o tsv)
$ az keyvault set-policy -n $KEYVAULT_NAME -g $RESOURCEGROUP --object-id \ $DES_IDENTITY --key-permissions wrapkey unwrapkey get
다음 명령을 실행하여 Azure Service Principal 권한을 DiskEncryptionSet을 읽을 수 있는 권한을 부여합니다.
$ DES_RESOURCE_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \ $RESOURCEGROUP --query "[id]" -o tsv)
$ az role assignment create --assignee $CLUSTER_SP_ID --role "<reader_role>" \1 --scope $DES_RESOURCE_ID -o jsonc
- 1
- 디스크 암호화 세트에 대한 읽기 권한이 있는 Azure 역할을 지정합니다. 필요한 권한으로
Owner
역할 또는 사용자 지정 역할을 사용할 수 있습니다.