カスタマー マネージド キーを使用して 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 または Premium レベルの Azure App Configuration インスタンス。
- 論理的な削除と消去保護機能が有効になっている Azure Key Vault。
- Key Vault 内の RSA または RSA-HSM キー。
- キーの有効期限が切れていないこと、キーが有効になっていること、およびラップとその解除の両方の機能が有効になっていることが必要です。
これらのリソースが構成されたら、次の手順を使用して、Azure App Configuration で Key Vault のキーを使用できるようにします。
- Azure App Configuration インスタンスにマネージド ID を割り当てます。
- Key Vault キーにアクセスできるように、ID にアクセス許可を付与します。
- Azure RBAC が有効になっている Key Vault の場合は、ターゲット Key Vault の
Key Vault Crypto Service Encryption User
ロールを ID に割り当てます。 - アクセス ポリシー承認を使用する Key Vault の場合は、ターゲット Key Vault のアクセス ポリシーで
GET
、WRAP
、およびUNWRAP
アクセス許可を ID に付与します。
- Azure RBAC が有効になっている Key Vault の場合は、ターゲット Key Vault の
App Configuration ストアに対してカスタマー マネージド キー暗号化を有効にする
存在しない場合は、Standard または Premium レベルで App Configuration ストアを作成します。
Azure CLI を使用して、消去保護を有効にした Azure Key Vault を作成します。 論理的な削除は既定で有効になっています。
vault-name
とresource-group-name
はどちらもユーザー指定であり、一意である必要があります。 これらの例では、contoso-vault
とcontoso-resource-group
を使用します。az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
Key Vault キーを作成します。 このキーに一意の
key-name
を指定し、手順 2 で作成した Key Vault (contoso-vault
) の名前に置き換えます。RSA
暗号化またはRSA-HSM
暗号化を指定します (RSA-HSM
は Premium レベルのみで使用できます)。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 つの重要なコンポーネントがあります。- Key Vault URI:
https://{my key vault}.vault.azure.net
- Key Vault のキー名:
{key-name}
- Key Vault のキー バージョン:
{key-version}
- Key Vault URI:
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 }
キーの検証、暗号化、暗号化解除を行うには、Azure App Configuration インスタンスのマネージド ID でキーにアクセスできる必要があります。 アクセスが必要な特定のアクション セットには、キーの
GET
、WRAP
、およびUNWRAP
が含まれます。 これらのアクセス許可は、Azure RBAC が有効な Key Vault にKey Vault Crypto Service Encryption User
ロールを割り当てることで付与できます。 アクセス ポリシー承認を使用する Key Vault の場合は、前述のキー アクセス許可のポリシーを設定します。 アクセスを許可するには、App Configuration インスタンスのマネージド ID のプリンシパル ID が必要です。 次に示すcontoso-principalId
の値を、前の手順で取得したプリンシパル ID に置き換えます。 コマンド ラインを使用して、マネージド キーへのアクセス許可を付与します。Azure RBAC が有効になっている Key Vault の場合は、次のコマンドを使用します。
az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
これで、Azure App Configuration インスタンスでマネージド キーにアクセスできるので、Azure CLI を使用して、サービスでカスタマーマネージド キー機能を有効にできます。 キーの作成手順で記録された
key name
key 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 を統合する方法の詳細について、次の手順に進んでください。