カスタマー マネージド キーを使用して App Configuration データを暗号化する

Azure App Configuration では、保存されている機密情報を暗号化します。 カスタマー マネージド キーを使用すると、暗号化キーを管理できるため、データ保護が強化されます。 マネージド キー暗号化が使用されている場合、App Configuration 内のすべての機密情報が、ユーザー指定の Azure Key Vault キーで暗号化されます。 これにより、必要に応じて暗号化キーを交換することができます。 また、App Configuration インスタンスのキーへのアクセスを取り消すことによって、機密情報への Azure App Configuration のアクセスを取り消すことができます。

概要

Azure App Configuration では、Microsoft によって提供される 256 ビットの AES 暗号化キーを使用して、保存されている機密情報を暗号化します。 すべての App Configuration インスタンスには、サービスによって管理され、機密情報を暗号化するために使用される独自の暗号化キーがあります。 機密情報には、キーと値のペアで検出された値が含まれます。 カスタマー マネージド キーの機能が有効になっている場合、App Configuration では、App Configuration インスタンスに割り当てられたマネージド ID を使用して Microsoft Entra ID で認証を行います。 その後、マネージド ID で Azure Key Vault が呼び出され、App Configuration インスタンスの暗号化キーがラップされます。 ラップされた暗号化キーはその後、格納され、ラップされていない暗号化キーは App Configuration 内に 1 時間キャッシュされます。 1 時間ごとに、App Configuration では、ラップされていないバージョンの App Configuration インスタンスの暗号化キーが更新されます。 この処理により、通常の運用条件下での可用性が保証されます。

重要

App Configuration インスタンスに割り当てられた ID でインスタンスの暗号化キーのラップを解除することが承認されなくなった場合、またはマネージド キーが完全に削除されている場合は、App Configuration インスタンスに格納されている機密情報の暗号化を解除できなくなります。 Azure Key Vault の論理的な削除機能を使用すると、暗号化キーを誤って削除する可能性が少なくなります。

ユーザーは、Azure App Configuration インスタンスでマネージド キー機能を有効にした場合、機密情報にアクセスするサービスの機能を制御することができます。 マネージド キーはルート暗号化キーとして機能します。 ユーザーは、キー コンテナーのアクセス ポリシーを変更することで、App Configuration インスタンスのマネージド キーへのアクセスを取り消すことができます。 このアクセスが取り消されると、App Configuration では 1 時間以内にユーザー データの暗号化を解除できなくなります。 この時点で、App Configuration インスタンスではすべてのアクセス試行を禁止します。 この状況は、もう一度サービスにマネージド キーへのアクセスを許可することで回復できます。 1 時間以内に、App Configuration ではユーザー データの暗号化を解除し、通常の条件下で動作できるようになります。

Note

すべての Azure App Configuration データは、分離バックアップで最大 24 時間格納されます。 これには、ラップされていない暗号化キーが含まれます。 このデータは、サービスやサービス チームですぐに使用できるわけではありません。 緊急時の復元の場合、Azure App Configuration では、それ自体をマネージド キー データから再度取り消します。

必要条件

Azure App Configuration に対するカスタマー マネージド キー機能を正常に有効にするには、次のコンポーネントが必要です。

  • Standard レベルの Azure App Configuration インスタンス。
  • 論理的な削除と消去保護の機能が有効になっている Azure Key Vault。
  • Key Vault 内の RSA または RSA-HSM キー。
    • キーの有効期限が切れていないこと、キーが有効になっていること、およびラップとその解除の両方の機能が有効になっていることが必要です。

これらのリソースが構成されたら、次の手順を使用して、Azure App Configuration で Key Vault のキーを使用できるようにします。

  1. Azure App Configuration インスタンスにマネージド ID を割り当てます。
  2. ターゲットの Key Vault のアクセス ポリシーで、ID の GETWRAP、および UNWRAP アクセス許可を付与します。

App Configuration ストアに対してカスタマー マネージド キー暗号化を有効にする

  1. App Configuration ストアがない場合は作成します

  2. Azure CLI を使用して、Azure Key Vault を作成します。 vault-nameresource-group-name はどちらもユーザー指定であり、一意である必要があります。 これらの例では、contoso-vaultcontoso-resource-group を使用します。

    az keyvault create --name contoso-vault --resource-group contoso-resource-group
    
  3. Key Vault に対して論理的な削除と消去保護を有効にします。 手順 1 で作成された Key Vault (contoso-vault) とリソース グループ (contoso-resource-group) の名前に置き換えます。

    az keyvault update --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection --enable-soft-delete
    
  4. Key Vault キーを作成します。 このキーに一意の key-name を指定し、手順 1 で作成された Key Vault (contoso-vault) の名前に置き換えます。 RSARSA-HSM のどちらの暗号化を優先するかを指定します。

    az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
    

    このコマンドからの出力には、生成されたキーのキー ID ("kid") が示されます。 この演習で後ほど使用するためにキー ID をメモしておきます。 キー ID の形式は https://{my key vault}.vault.azure.net/keys/{key-name}/{Key version} になります。 キー ID には、次の 3 つの重要なコンポーネントがあります。

    1. Key Vault URI: `https://{自分のキー コンテナー}.vault.azure.net
    2. Key Vault キーの名前: {キーの名前}
    3. Key Vault キーのバージョン: {キーのバージョン}
  5. Azure CLI を使用して、システム割り当てマネージド ID を作成します。その際に、前の手順で使用された App Configuration インスタンスとリソース グループの名前に置き換えます。 マネージド ID は、マネージド キーにアクセスするために使用されます。 App Configuration インスタンスの名前を示すために、contoso-app-config を使用しています。

    az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
    

    このコマンドの出力には、システム割り当て ID のプリンシパル ID ("principalId") とテナント ID ("tenandId") が含まれています。 これらの ID は、マネージド キーへの ID によるアクセスを許可するために使用されます。

    {
    "principalId": {Principal Id},
    "tenantId": {Tenant Id},
    "type": "SystemAssigned",
    "userAssignedIdentities": null
    }
    
  6. キーの検証、暗号化、暗号化解除を行うには、Azure App Configuration インスタンスのマネージド ID でキーにアクセスできる必要があります。 アクセスが必要な特定のアクション セットには、キーの GETWRAP、および UNWRAP が含まれます。 アクセスを許可するには、App Configuration インスタンスのマネージド ID のプリンシパル ID が必要です。 この値は前の手順で取得されたものです。 以下のように、contoso-principalId として示されます。 コマンド ラインを使用して、マネージド キーへのアクセス許可を付与します。

    az keyvault set-policy -n contoso-vault --object-id contoso-principalId --key-permissions get wrapKey unwrapKey
    
  7. Azure App Configuration インスタンスでマネージド キーにアクセスできるようになったら、Azure CLI を使用して、サービスでカスタマー マネージド キー機能を有効にできます。 キーの作成手順で記録された key namekey vault URI プロパティを思い出してください。

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
    

これで、Azure App Configuration インスタンスは、Azure Key Vault に格納されているカスタマー マネージド キーを使用するように構成されました。

次の手順

この記事では、暗号化にカスタマー マネージド キーを使用するように Azure App Configuration インスタンスを構成しました。 アプリ サービスと Azure マネージド ID を統合する方法の詳細について、次の手順に進んでください。