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