고객 관리형 키를 사용하여 App Configuration 데이터 암호화

Azure 앱 구성은 미사용 시 중요한 정보를 암호화합니다. 고객 관리형 키를 사용하면 암호화 키를 관리할 수 있으므로 데이터 보호가 향상됩니다. 관리형 키 암호화를 사용하는 경우 App Configuration의 모든 중요한 정보는 사용자가 제공한 Azure Key Vault 키로 암호화됩니다. 이를 통해 요청 시 암호화 키를 회전할 수 있습니다. 또한 App Configuration 인스턴스의 키 액세스를 취소하여 중요한 정보에 대한 Azure 앱 Configuration의 액세스를 취소하는 기능도 제공합니다.

개요

Azure App Configuration은 Microsoft에서 제공하는 256비트 AES 암호화 키를 사용하여 중요한 미사용 정보를 암호화합니다. 모든 App Configuration 인스턴스에는 서비스에서 관리하며 중요한 정보를 암호화하는 데 사용되는 자체 암호화 키가 있습니다. 중요한 정보에는 키-값 쌍의 값이 포함됩니다. 고객 관리형 키 기능을 사용하도록 설정하면 App Configuration은 App Configuration 인스턴스에 할당된 관리 ID를 사용하여 Microsoft Entra ID로 인증합니다. 그런 다음, 관리 ID는 Azure Key Vault를 호출하고 App Configuration 인스턴스의 암호화 키를 래핑합니다. 그러면 래핑된 암호화 키는 저장되고 래핑되지 않은 암호화 키는 1시간 동안 App Configuration 내에 캐시됩니다. 매시간 App Configuration에서는 App Configuration 인스턴스 암호화 키의 래핑 해제된 버전을 새로 고칩니다. 이 프로세스를 통해 정상적인 운영 상태에서 가용성이 보장됩니다.

Important

App Configuration 인스턴스에 할당된 ID에 더 이상 인스턴스의 암호화 키를 래핑 해제할 수 있는 권한이 없거나 관리형 키가 영구적으로 삭제된 경우에는 App Configuration 인스턴스에 저장된 중요한 정보를 더 이상 해독할 수 없습니다. Azure Key Vault의 일시 삭제 기능을 사용하면 암호화 키를 실수로 삭제할 가능성이 줄어듭니다.

사용자는 Azure 앱 Configuration 인스턴스에서 고객 관리형 키 기능을 사용하도록 설정하면 중요한 정보에 액세스하는 서비스의 기능을 제어합니다. 관리되는 키는 루트 암호화 키 역할을 합니다. 사용자는 Key Vault 액세스 정책을 변경하여 관리형 키에 대한 App Configuration 인스턴스의 액세스 권한을 해지할 수 있습니다. 이 액세스가 해지되면 App Configuration은 1시간 이내에 사용자 데이터의 암호를 해독하는 기능을 잃게 됩니다. 이 시점에서 App Configuration 인스턴스는 모든 액세스 시도를 금지합니다. 이 상황은 관리되는 키에 대한 액세스 권한을 서비스에 다시 부여하여 복구할 수 있습니다. 1시간 이내에 App Configuration은 사용자 데이터의 암호를 해독하고 정상적인 조건에서 작동할 수 있습니다.

참고 항목

모든 Azure 앱 구성 데이터는 격리된 백업에 최대 24시간 동안 저장됩니다. 여기에는 래핑되지 않은 암호화 키가 포함됩니다. 이 데이터는 서비스 또는 서비스 팀에서 즉시 사용할 수 없습니다. 응급 복원 시 Azure App Configuration은 관리형 키 데이터에서 자체적으로 다시 취소합니다.

요구 사항

Azure App Configuration의 고객 관리형 키 기능을 사용하도록 설정하려면 다음 구성 요소가 필요합니다.

  • 표준 계층 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 GET, WRAPUNWRAP 권한을 부여합니다.

App Configuration 저장소에 대해 고객 관리형 키 암호화 사용

  1. 앱 구성 저장소 가 없는 경우 만듭니다.

  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에는 다음과 같은 형식 https://{my key vault}.vault.azure.net/keys/{key-name}/{Key version}이 있습니다. 키 ID에는 다음과 같은 세 가지 중요한 구성 요소가 있습니다.

    1. Key Vault URI: 'https://{내 키 자격 증명 모음}.vault.azure.net
    2. Key Vault 키 이름: {Key Name}
    3. Key Vault 키 버전: {Key version}
  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 앱 구성 인스턴스의 관리 ID는 키 유효성 검사, 암호화 및 암호 해독을 수행하기 위해 키에 액세스해야 합니다. 액세스가 필요한 특정 작업 세트에는 키에 대한 GET, WRAPUNWRAP이 포함됩니다. 액세스 권한을 부여하려면 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 앱 Configuration 인스턴스가 Azure Key Vault에 저장된 고객 관리형 키를 사용하도록 구성되었습니다.

다음 단계

이 문서에서는 암호화에 고객 관리형 키를 사용하도록 Azure 앱 Configuration 인스턴스를 구성했습니다. Azure 관리 ID와 앱 서비스를 통합하는 방법에 대해 자세히 알아보려면 다음 단계를 계속 진행합니다.