Share via


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
    

2 つの空のサブネットを含む仮想ネットワークを作成する

2 つの空のサブネットを含む仮想ネットワークを作成します。 要件を満たす仮想ネットワークが既にある場合は、このステップを省略できます。 仮想ネットワークを作成する手順を確認するには、「2 つの空のサブネットを含む仮想ネットワークを作成する」を参照してください。

Azure Key Vault インスタンスを作成する

キーを格納するには、Azure Key Vault のインスタンスを使用する必要があります。 消去保護が有効になっている新しいキー コンテナーを作成します。 次に、独自のカスタム キーを格納するための新しいキーを Key Vault に作成します。

  1. 他の環境アクセス許可を設定します。
    export KEYVAULT_NAME=$USER-enckv
    export KEYVAULT_KEY_NAME=$USER-key
    export DISK_ENCRYPTION_SET_NAME=$USER-des
    
  2. キー コンテナーを作成して、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 Disk Encryption セットは、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 クラスターを作成します。

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 がカスタマー マネージド暗号化キーで暗号化されます。

キーを正しく構成したことを確認するには、次のコマンドを実行します。

  1. クラスターの VM やディスクなどが存在するクラスター リソース グループの名前を取得します。
    CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
    
  2. ディスクに正しいディスク暗号化セットがアタッチされていることを確認します。
    az disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
    
    出力の diskEncryptionSetId フィールドは、Azure Red Hat OpenShift クラスターを作成するときに指定したディスク暗号化セットを指し示している必要があります。