3장. Azure에 대한 사용자 관리 암호화 활성화
OpenShift Container Platform 버전 4.16에서는 Azure에서 사용자 관리 암호화 키를 사용하여 클러스터를 설치할 수 있습니다. 이 기능을 활성화하려면 설치 전에 Azure DiskEncryptionSet을 준비하고 install-config.yaml
파일을 수정한 다음 설치를 완료할 수 있습니다.
3.1. Azure 디스크 암호화 세트 준비
OpenShift Container Platform 설치 프로그램에서는 사용자 관리 키와 함께 기존 디스크 암호화 세트를 사용할 수 있습니다. 이 기능을 활성화하려면 Azure에서 디스크 암호화 세트를 생성하고 설치 프로그램에 키를 제공할 수 있습니다.
프로세스
다음 명령을 실행하여 Azure 리소스 그룹에 대해 다음 환경 변수를 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export RESOURCEGROUP="<resource_group>" \ LOCATION="<location>"
$ export RESOURCEGROUP="<resource_group>" \
1 LOCATION="<location>"
2 다음 명령을 실행하여 Azure Key Vault 및 디스크 암호화 세트에 대해 다음 환경 변수를 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 다음 명령을 실행하여 Azure 서비스 주체의 ID에 대한 환경 변수를 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export CLUSTER_SP_ID="<service_principal_id>"
$ export CLUSTER_SP_ID="<service_principal_id>"
1 - 1
- 이 설치에 사용할 서비스 주체의 ID를 지정합니다.
다음 명령을 실행하여 Azure에서 호스트 수준 암호화를 활성화합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
다음 명령을 실행하여 디스크 암호화 세트 및 관련 리소스를 보유하는 Azure 리소스 그룹을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow az group create --name $RESOURCEGROUP --location $LOCATION
$ az group create --name $RESOURCEGROUP --location $LOCATION
다음 명령을 실행하여 Azure 키 자격 증명 모음을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
다음 명령을 실행하여 키 자격 증명 모음의 ID를 캡처합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
$ KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
다음 명령을 실행하여 키 자격 증명 모음의 키 URL을 캡처합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
다음 명령을 실행하여 키 자격 증명 모음에 대한 DiskEncryptionSet 리소스 액세스 권한을 부여합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
다음 명령을 실행하여 Azure Service Principal 권한을 DiskEncryptionSet을 읽을 수 있는 권한을 부여합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
- 1
- 디스크 암호화 세트에 대한 읽기 권한이 있는 Azure 역할을 지정합니다. 필요한 권한으로
Owner
역할 또는 사용자 지정 역할을 사용할 수 있습니다.