Azure Storage는 미사용 스토리지 계정의 모든 데이터를 암호화합니다. 기본적으로 데이터는 Microsoft 관리형 키로 암호화됩니다. 암호화 키에 대한 추가 제어를 위해 사용자 고유의 키를 관리할 수 있습니다. 고객 관리형 키는 Azure Key Vault 또는 Key Vault 관리형 HSM(하드웨어 보안 모델)에 저장되어 있어야 합니다.
이 문서에서는 Azure Portal, PowerShell 또는 Azure CLI를 사용하여 키 자격 증명 모음에 저장된 고객 관리형 키로 암호화를 구성하는 방법에 대해 알아봅니다. 관리형 HSM에 저장된 고객 관리형 키로 암호화를 구성하는 방법에 대한 자세한 내용은 Azure Key Vault 관리형 HSM에 저장된 고객 관리형 키로 암호화 구성을 참조하세요.
참고
Azure Key Vault 및 Azure Key Vault 관리형 HSM은 구성에 대해 동일한 API 및 관리 인터페이스를 지원합니다.
키 자격 증명 모음 구성
신규 또는 기존 키 자격 증명 모음을 사용하여 고객 관리형 키를 저장할 수 있습니다. 스토리지 계정 및 키 자격 증명 모음은 동일한 테넌트의 다른 지역 또는 구독에 있을 수 있습니다. Azure Key Vault에 대한 자세한 내용을 보려면 Azure Key Vault 개요 및 Azure Key Vault란?을 참조하세요.
Azure Storage 암호화에서 고객 관리형 키를 사용하려면 키 자격 증명 모음에 대해 일시 삭제 및 제거 보호를 모두 사용하도록 설정해야 합니다. 일시 삭제는 새 키 자격 증명 모음을 만들 때 기본적으로 사용하도록 설정되며 해제할 수 없습니다. 키 자격 증명 모음을 만들 때 또는 만든 후에 제거 보호를 사용하도록 설정할 수 있습니다.
PowerShell을 사용하여 새 키 자격 증명 모음을 만들려면 버전 2.0.0 이상의 Az.KeyVault PowerShell 모듈을 설치합니다. 그런 다음 New-AzKeyVault를 호출하여 새 키 자격 증명 모음을 만듭니다. Az.KeyVault 모듈의 2.0.0 이상 버전을 사용하는 경우 새 키 자격 증명 모음을 만들 때 일시 삭제가 기본적으로 사용하도록 설정됩니다.
다음 예제에서는 일시 삭제 및 제거 보호를 모두 사용하도록 설정하여 새 키 자격 증명 모음을 만듭니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여하려면 사용자가 할당한 관리 ID의 리소스 ID 및 주체 ID가 필요합니다. Get-AzUserAssignedIdentity를 호출하여 사용자가 할당한 관리 ID를 가져온 다음, 리소스 ID 및 주체 ID를 변수에 저장합니다. 이후 단계에서 이러한 값이 필요합니다.
사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여하려면 사용자가 할당한 관리 ID의 리소스 ID 및 주체 ID가 필요합니다. az identity show 명령을 호출하여 사용자가 할당한 관리 ID를 가져온 다음, 리소스 ID 및 주체 ID를 변수에 저장합니다. 이후 단계에서 이러한 값이 필요합니다.
userIdentityId=$(az identity show --name sample-user-assigned-identity --resource-group storagesamples-rg --query id)
principalId=$(az identity show --name sample-user-assigned-identity --resource-group storagesamples-rg --query principalId)
시스템이 할당한 관리 ID를 사용하여 액세스 권한 부여
시스템이 할당한 관리 ID는 Azure 서비스 인스턴스와 연결됩니다(이 경우 Azure Storage 계정). 시스템이 할당한 관리 ID를 사용하여 고객 관리형 키가 포함된 키 자격 증명 모음에 대한 액세스 권한을 부여하려면 먼저 스토리지 계정에 시스템이 할당한 관리 ID를 명시적으로 할당해야 합니다.
기존 스토리지 계정만 시스템 할당 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여할 수 있습니다. 계정 생성 시 고객 관리형 키를 구성한 경우 새 스토리지 계정은 사용자 할당 ID를 사용해야 합니다.
다음 단계는 키 자격 증명 모음 액세스 정책을 구성하는 것입니다. 키 자격 증명 모음 액세스 정책은 키 자격 증명 모음에 대한 액세스 권한을 부여하는 데 사용할 관리 ID에 대한 권한을 부여합니다. 키 자격 증명 모음 액세스 정책에 대한 자세한 내용은 Azure Key Vault 개요 및 Azure Key Vault 보안 개요를 참조하세요.
새 스토리지 계정에 대해 고객 관리형 키를 사용하여 암호화를 구성하는 경우 연결된 키 자격 증명 모음에서 새 버전을 사용할 수 있을 때마다 Azure Storage 암호화에 사용되는 키 버전을 자동으로 업데이트하도록 선택할 수 있습니다. 또는, 키 버전이 수동으로 업데이트될 때까지 암호화에 사용할 키 버전을 명시적으로 지정할 수 있습니다.
스토리지 계정을 만드는 동안 고객 관리형 키를 구성할 경우 기존의 사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여해야 합니다. 사용자가 할당한 관리 ID에는 키 자격 증명 모음에 액세스할 수 있는 적절한 권한이 있어야 합니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 단계를 수행합니다.
Azure Portal에서 스토리지 계정 페이지로 이동하고 만들기 단추를 선택하여 새 계정을 만듭니다.
스토리지 계정 만들기에 설명된 단계를 수행하여 기본, 고급, 네트워킹 및 데이터 보호 탭의 필드를 채웁니다.
암호화 탭의 고객 관리형 키에 대한 지원을 사용하도록 설정 필드에서 고객 관리형 키에 대한 지원을 사용하도록 설정하려는 서비스를 나타냅니다.
암호화 유형 필드에서 CMK(고객 관리형 키)를 선택합니다.
암호화 키 필드에서 키 자격 증명 모음 및 키 선택을 선택하고 키 자격 증명 모음과 키를 지정합니다.
사용자 할당 ID 필드의 경우 기존의 사용자가 할당한 관리 ID를 선택합니다.
검토 + 만들기를 선택하여 새 계정의 유효성을 검사하고 만듭니다.
새 스토리지 계정을 만들 때 키 버전의 수동 업데이트를 사용하여 고객 관리형 키를 구성할 수도 있습니다. 암호화에서 키 버전 수동 업데이트 구성에 설명된 단계를 따릅니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 예제와 같이 New-AzStorageAccount를 호출합니다. 사용자가 할당한 관리 ID에 대한 리소스 ID에 대해 이전에 만든 변수를 사용합니다. 키 자격 증명 모음 URI 및 키 이름도 필요합니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 예제와 같이 az storage account create를 호출합니다. 사용자가 할당한 관리 ID에 대한 리소스 ID에 대해 이전에 만든 변수를 사용합니다. 키 자격 증명 모음 URI 및 키 이름도 필요합니다.
기존 스토리지 계정에 대해 고객 관리형 키를 사용하여 암호화를 구성하는 경우 연결된 키 자격 증명 모음에서 새 버전을 사용할 수 있을 때마다 Azure Storage 암호화에 사용되는 키 버전을 자동으로 업데이트하도록 선택할 수 있습니다. 또는, 키 버전이 수동으로 업데이트될 때까지 암호화에 사용할 키 버전을 명시적으로 지정할 수 있습니다.
기존 스토리지 계정에 대해 고객 관리형 키를 구성할 경우 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여할 수 있습니다.
참고
키를 회전하려면 Azure Key Vault에서 새 버전의 키를 만듭니다. Azure Storage는 키 회전을 처리하지 않으므로 키 자격 증명 모음에서 키 회전을 관리해야 합니다. Azure Key Vault에서 키 자동 회전을 구성하거나 키를 수동으로 회전할 수 있습니다.
암호화에서 키 버전 자동 업데이트 구성
Azure Storage는 키 자격 증명 모음의 최신 키 버전을 사용하도록 암호화에 사용되는 고객 관리형 키를 자동으로 업데이트할 수 있습니다. Azure Storage는 매일 키 자격 증명 모음에서 새 키 버전을 확인합니다. 새 버전을 사용할 수 있게 되면 Azure Storage에서 자동으로 최신 버전의 암호화 키를 사용하기 시작합니다.
중요
Azure Storage는 키 자격 증명 모음에서 새 키 버전을 매일 한 번만 확인합니다. 키를 회전하는 경우 이전 버전을 사용하지 않도록 설정할 때까지 24시간 동안 기다려야 합니다.
Azure Portal에서 키 버전 자동 업데이트를 사용하여 기존 계정에 대한 고객 관리형 키를 구성하려면 다음 단계를 수행합니다.
스토리지 계정으로 이동합니다.
스토리지 계정에 대한 설정 블레이드에서 암호화를 클릭합니다. 기본적으로 키 관리는 다음 이미지와 같이 Microsoft 관리 키로 설정됩니다.
고객 관리형 키 옵션을 선택합니다.
Key Vault에서 선택 옵션을 선택합니다.
키 자격 증명 모음 및 키 선택을 선택합니다.
사용하려는 키가 포함된 키 자격 증명 모음을 선택합니다. 새 키 자격 증명 모음을 만들 수도 있습니다.
키 자격 증명 모음에서 키를 선택합니다. 새 키를 만들 수도 있습니다.
키 자격 증명 모음에 대한 액세스를 인증하는 데 사용할 ID 유형을 선택합니다. 옵션에는 시스템 할당(기본값) 또는 사용자 할당이 포함됩니다. 관리 ID의 각 유형에 대해 자세히 알아보려면 관리 ID 유형을 참조하세요.
시스템 할당을 선택하면 스토리지 계정에 대한 시스템이 할당한 관리 ID가 아직 없는 경우 사용자에게 보이지 않게 만들어집니다.
사용자 할당을 선택하면 키 자격 증명 모음에 액세스할 수 있는 권한이 있는 기존의 사용자 할당 ID를 선택해야 합니다. 사용자가 할당한 ID를 만드는 방법을 알아보려면 사용자가 할당한 관리 ID 관리를 참조하세요.
변경 내용을 저장합니다.
키를 지정하면 Azure Portal은 키 버전 자동 업데이트가 사용하도록 설정되어 있음을 나타내고 현재 암호화에 사용 중인 키 버전을 표시합니다. 또한 포털에서는 키 자격 증명 모음에 대한 액세스 권한을 부여하는 데 사용되는 관리 ID 유형과 관리 ID에 대한 주체 ID를 표시합니다.
PowerShell에서 키 버전 자동 업데이트를 사용하여 기존 계정에 대한 고객 관리형 키를 구성하려면 Az.Storage 모듈 버전 2.0.0 이상을 설치합니다.
그런 다음, Set-AzStorageAccount를 호출하여 스토리지 계정의 암호화 설정을 업데이트하고 키 버전을 생략합니다. -KeyvaultEncryption 옵션을 포함하여 스토리지 계정에 대해 고객 관리형 키를 사용하도록 설정합니다.
그런 다음, az storage account update를 호출하여 스토리지 계정의 암호화 설정을 업데이트하고 키 버전을 생략합니다. --encryption-key-source 매개 변수를 포함하고 이를 Microsoft.Keyvault로 설정하여 계정에서 고객 관리형 키를 사용하도록 설정합니다.
키 버전을 수동으로 업데이트하려면 암호화에서 고객 관리형 키를 구성할 때 버전을 명시적으로 지정합니다. 이 경우 Azure Storage는 자격 증명 모음에서 새 버전을 만들 때 키 버전을 자동으로 업데이트하지 않습니다. 새 키 버전을 사용하려면 Azure Storage 암호화에 사용되는 버전을 수동으로 업데이트해야 합니다.
Azure Portal에서 키 버전 수동 업데이트를 사용하도록 고객 관리형 키를 구성하려면 버전을 포함하여 키 URI를 지정합니다. 키를 URI로 지정하려면 다음 단계를 수행합니다.
Azure Portal에서 키 URI를 찾으려면 키 자격 증명 모음으로 이동하여 키 설정을 선택합니다. 원하는 키를 선택한 다음, 키를 클릭하여 버전을 확인합니다. 키 버전을 선택하여 해당 버전의 설정을 봅니다.
URI를 제공하는 키 식별자 필드의 값을 복사합니다.
스토리지 계정에 대한 암호화 키 설정에서 키 URI 입력 옵션을 선택합니다.
복사한 URI를 키 URI 필드에 붙여넣습니다. 키 버전 자동 업데이트를 사용하도록 설정하려면 URI에서 키 버전을 생략합니다.
키 자격 증명 모음을 포함하는 구독을 지정합니다.
시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID를 지정합니다.
변경 내용을 저장합니다.
키 버전 수동 업데이트를 사용하도록 고객 관리형 키를 구성하려면 스토리지 계정의 암호화를 구성할 때 키 버전을 명시적으로 제공합니다. 다음 예제와 같이 Set-AzStorageAccount를 호출하여 스토리지 계정의 암호화 설정을 업데이트하고 -KeyvaultEncryption 옵션을 포함하여 스토리지 계정에 고객 관리형 키를 사용하도록 설정합니다.
대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.
키 버전을 수동으로 업데이트할 때 새 버전을 사용하도록 스토리지 계정의 암호화 설정을 업데이트해야 합니다. 먼저 Get-AzKeyVaultKey를 호출하여 최신 버전의 키를 가져옵니다. 그런 다음 이전 예제와 같이 Set-AzStorageAccount를 호출하여 새 버전의 키를 사용하도록 스토리지 계정의 암호화 설정을 업데이트합니다.
키 버전 수동 업데이트를 사용하도록 고객 관리형 키를 구성하려면 스토리지 계정의 암호화를 구성할 때 키 버전을 명시적으로 제공합니다. 다음 예제와 같이 az storage account update를 호출하여 스토리지 계정의 암호화 설정을 업데이트합니다. --encryption-key-source 매개 변수를 포함하고 이를 Microsoft.Keyvault로 설정하여 계정에서 고객 관리형 키를 사용하도록 설정합니다.
Azure Portal을 사용하여 고객 관리형 키를 철회하려면 고객 관리형 키 사용 안 함에 설명된 대로 키를 사용하지 않도록 설정합니다.
키 자격 증명 모음 액세스 정책을 제거하여 고객 관리형 키를 철회할 수 있습니다. PowerShell을 사용하여 고객 관리형 키를 철회하려면 다음 예제와 같이 Remove-AzKeyVaultAccessPolicy 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.
키 자격 증명 모음 액세스 정책을 제거하여 고객 관리형 키를 철회할 수 있습니다. Azure CLI를 사용하여 고객 관리형 키를 철회하려면 다음 예제와 같이 az keyvault delete-policy 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.
az keyvault delete-policy \
--name <key-vault> \
--object-id $storage_account_principal
고객 관리형 키 사용 안 함
고객 관리형 키를 사용하지 않도록 설정하면 스토리지 계정이 Microsoft 관리 키로 다시 암호화됩니다.
Azure Portal에서 고객 관리형 키를 사용하지 않도록 설정하려면 다음 단계를 수행합니다.
스토리지 계정으로 이동하여 암호화 설정을 표시합니다.
사용자 고유 키 사용 설정 옆에 있는 확인란의 선택을 취소합니다.
PowerShell을 사용하여 고객 관리형 키를 사용하지 않도록 설정하려면 다음 예제와 같이 -StorageEncryption 옵션을 사용하여 Set-AzStorageAccount 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.
Azure CLI를 사용하여 고객 관리형 키를 사용하지 않도록 설정하려면 다음 예제와 같이 az storage account update 명령을 호출하고 --encryption-key-source parameter를 Microsoft.Storage로 설정합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.