Azure Storage는 미사용 스토리지 계정의 모든 데이터를 암호화합니다. 기본적으로 데이터는 Microsoft 관리형 키로 암호화됩니다. 암호화 키에 대한 추가 제어를 위해 사용자 고유의 키를 관리할 수 있습니다. 고객 관리형 키는 Azure Key Vault 또는 Azure Key Vault 관리형 HSM(하드웨어 보안 모델)에 저장해야 합니다.
이 문서에서는 새 스토리지 계정을 만들 때 고객 관리형 키를 사용하는 암호화를 구성하는 방법을 보여 줍니다. 고객 관리형 키는 키 자격 증명 모음에 저장됩니다.
Azure Key Vault 및 Azure Key Vault 관리되는 HSM은 고객 관리형 키 구성 시 동일한 API 및 관리 인터페이스를 지원합니다. Azure Key Vault에 지원되는 모든 작업은 Azure Key Vault 관리되는 HSM에도 지원됩니다.
키 자격 증명 모음 구성
신규 또는 기존 키 자격 증명 모음을 사용하여 고객 관리형 키를 저장할 수 있습니다. 스토리지 계정 및 키 자격 증명 모음은 동일한 테넌트의 다른 지역 또는 구독에 있을 수 있습니다. 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 이상 버전을 사용하는 경우 새 키 자격 증명 모음을 만들 때 일시 삭제가 기본적으로 사용하도록 설정됩니다.
다음 예에서는 일시 삭제 및 제거 보호가 사용하도록 설정된 새 키 자격 증명 모음을 만듭니다. 키 자격 증명 모음의 권한 모델은 Azure RBAC를 사용하도록 설정됩니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
Azure CLI를 사용하여 새 키 자격 증명 모음을 만들려면 az keyvault create를 호출합니다. 다음 예에서는 일시 삭제 및 제거 보호가 사용하도록 설정된 새 키 자격 증명 모음을 만듭니다. 키 자격 증명 모음의 권한 모델은 Azure RBAC를 사용하도록 설정됩니다. 대괄호의 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
사용자가 할당한 관리 ID로 고객 관리형 키를 구성하려면 먼저 Key Vault 암호화 서비스 암호화 사용자 역할을 키 자격 증명 모음으로 범위가 할당된 사용자가 할당한 관리 ID에 할당해야 합니다. 이 역할은 키 자격 증명 모음의 키에 액세스할 수 있는 사용자가 할당한 관리 ID 권한을 부여합니다. Azure Portal에서 Azure RBAC 역할 할당에 대한 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.
Azure Portal을 사용하여 고객 관리형 키를 구성하는 경우 포털 사용자 인터페이스를 통해 기존 사용자 할당 ID를 선택할 수 있습니다.
다음 예에서는 사용자가 할당한 관리 ID를 검색하고 여기에 키 자격 증명 모음으로 범위가 할당된 필수 RBAC 역할을 할당하는 방법을 보여 줍니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예에 정의된 변수를 사용해야 합니다.
다음 예에서는 사용자가 할당한 관리 ID를 검색하고 여기에 키 자격 증명 모음으로 범위가 할당된 필수 RBAC 역할을 할당하는 방법을 보여 줍니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예에 정의된 변수를 사용해야 합니다.
identityResourceId=$(az identity show --name <user-assigned-identity> \
--resource-group $rgName \
--query id \
--output tsv)
principalId=$(az identity show --name <user-assigned-identity> \
--resource-group $rgName \
--query principalId \
--output tsv)
az role assignment create --assignee-object-id $principalId \
--role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId \
--assignee-principal-type ServicePrincipal
새 스토리지 계정에 대한 고객 관리형 키 구성
새 스토리지 계정에 대해 고객 관리형 키를 사용하여 암호화를 구성하는 경우 연결된 키 자격 증명 모음에서 새 버전을 사용할 수 있을 때마다 Azure Storage 암호화에 사용되는 키 버전을 자동으로 업데이트하도록 선택할 수 있습니다. 또는, 키 버전이 수동으로 업데이트될 때까지 암호화에 사용할 키 버전을 명시적으로 지정할 수 있습니다.
스토리지 계정을 만드는 동안 고객 관리형 키를 구성할 경우 기존의 사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여해야 합니다. 사용자가 할당한 관리 ID에는 키 자격 증명 모음에 액세스할 수 있는 적절한 권한이 있어야 합니다. 자세한 내용은 Azure Key Vault에 인증을 참조하세요.
암호화에서 키 버전 자동 업데이트 구성
Azure Storage는 키 자격 증명 모음의 최신 키 버전을 사용하도록 암호화에 사용되는 고객 관리형 키를 자동으로 업데이트할 수 있습니다. Azure Storage는 매일 키 자격 증명 모음에서 새 키 버전을 확인합니다. 새 버전을 사용할 수 있게 되면 Azure Storage에서 자동으로 최신 버전의 암호화 키를 사용하기 시작합니다.
Important
Azure Storage는 키 자격 증명 모음에서 새 키 버전을 매일 한 번만 확인합니다. 키를 회전하는 경우 이전 버전을 사용하지 않도록 설정할 때까지 24시간 동안 기다려야 합니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 단계를 수행합니다.
Azure Portal에서 스토리지 계정 페이지로 이동하고 만들기 단추를 선택하여 새 계정을 만듭니다.
스토리지 계정 만들기에 설명된 단계를 수행하여 기본, 고급, 네트워킹 및 데이터 보호 탭의 필드를 채웁니다.
암호화 탭의 고객 관리형 키에 대한 지원을 사용하도록 설정 필드에서 고객 관리형 키에 대한 지원을 사용하도록 설정하려는 서비스를 나타냅니다.
암호화 유형 필드에서 CMK(고객 관리형 키)를 선택합니다.
암호화 키 필드에서 키 자격 증명 모음 및 키 선택을 선택하고 키 자격 증명 모음과 키를 지정합니다.
사용자 할당 ID 필드의 경우 기존의 사용자가 할당한 관리 ID를 선택합니다.
검토 단추를 선택하여 유효성을 검사하고 계정을 만듭니다.
새 스토리지 계정을 만들 때 키 버전의 수동 업데이트를 사용하여 고객 관리형 키를 구성할 수도 있습니다. 암호화에서 키 버전 수동 업데이트 구성에 설명된 단계를 따릅니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 예제와 같이 New-AzStorageAccount를 호출합니다. 사용자가 할당한 관리 ID에 대한 리소스 ID에 대해 이전에 만든 변수를 사용합니다. 키 자격 증명 모음 URI 및 키 이름도 필요합니다.
키 버전 자동 업데이트를 통해 새 스토리지 계정에 대한 고객 관리형 키를 구성하려면 다음 예제와 같이 az storage account create를 호출합니다. 사용자가 할당한 관리 ID에 대한 리소스 ID에 대해 이전에 만든 변수를 사용합니다. 키 자격 증명 모음 URI 및 키 이름도 필요합니다.
키 버전을 수동으로 업데이트하려는 경우 스토리지 계정을 만드는 동안 고객 관리형 키를 사용하는 암호화를 구성할 때 버전을 명시적으로 지정합니다. 이 경우 Azure Storage는 자격 증명 모음에서 새 버전을 만들 때 키 버전을 자동으로 업데이트하지 않습니다. 새 키 버전을 사용하려면 Azure Storage 암호화에 사용되는 버전을 수동으로 업데이트해야 합니다.
스토리지 계정을 만드는 동안 고객 관리형 키를 구성할 경우 기존의 사용자가 할당한 관리 ID를 사용하여 키 자격 증명 모음에 대한 액세스 권한을 부여해야 합니다. 사용자가 할당한 관리 ID에는 키 자격 증명 모음에 액세스할 수 있는 적절한 권한이 있어야 합니다. 자세한 내용은 Azure Key Vault에 인증을 참조하세요.
Azure Portal에서 키 버전을 수동으로 업데이트하도록 고객 관리형 키를 구성하려면 스토리지 계정을 만드는 동안 버전을 포함하여 키 URI를 지정합니다. 키를 URI로 지정하려면 다음 단계를 수행합니다.
Azure Portal에서 스토리지 계정 페이지로 이동하고 만들기 단추를 선택하여 새 계정을 만듭니다.
스토리지 계정 만들기에 설명된 단계를 수행하여 기본, 고급, 네트워킹 및 데이터 보호 탭의 필드를 채웁니다.
암호화 탭의 고객 관리형 키에 대한 지원을 사용하도록 설정 필드에서 고객 관리형 키에 대한 지원을 사용하도록 설정하려는 서비스를 나타냅니다.
암호화 유형 필드에서 CMK(고객 관리형 키)를 선택합니다.
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 Storage 계정의 데이터는 항상 암호화된 상태로 유지됩니다. 데이터를 보호하기 위해 취해야 할 추가 조치는 없습니다. 키를 변경하거나 키 버전을 회전해도 성능에 영향을 주지는 않습니다. 키 변경 또는 키 버전 회전과 관련된 가동 중지 시간은 없습니다.
고객 관리형 키를 사용하는 스토리지 계정에 대한 액세스 권한을 일시적으로 철회하려면 키 자격 증명 모음에서 현재 사용되는 키를 사용하지 않도록 설정합니다. 키를 사용하지 않도록 설정했다가 다시 사용하도록 설정하는 일과 관련하여 나타나는 성능상의 영향이나 가동 중지 시간은 없습니다.
Azure Portal에서 고객 관리형 키를 사용하지 않도록 설정하려면 다음 단계를 따릅니다.
키가 포함된 키 자격 증명 모음으로 이동합니다.
개체에서 키를 선택합니다.
키를 마우스 오른쪽 단추로 클릭하고 사용 안 함을 선택합니다.
PowerShell을 사용하여 고객 관리형 키를 철회하려면 다음 예제와 같이 Update-AzKeyVaultKey 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꿔 변수를 정의하거나, 이전 예제에서 정의한 변수를 사용해야 합니다.
$kvName = "<key-vault-name>"
$keyName = "<key-name>"
$enabled = $false
# $false to disable the key / $true to enable it
# Check the current state of the key (before and after enabling/disabling it)
Get-AzKeyVaultKey -Name $keyName -VaultName $kvName
# Disable (or enable) the key
Update-AzKeyVaultKey -VaultName $kvName -Name $keyName -Enable $enabled
Azure CLI를 사용하여 고객 관리형 키를 철회하려면 다음 예제와 같이 az keyvault key set-attributes 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 고유한 값으로 바꿔 변수를 정의하거나 이전 예에서 정의한 변수를 사용해야 합니다.
kvName="<key-vault-name>"
keyName="<key-name>"
enabled="false"
# "false" to disable the key / "true" to enable it:
# Check the current state of the key (before and after enabling/disabling it)
az keyvault key show \
--vault-name $kvName \
--name $keyName
# Disable (or enable) the key
az keyvault key set-attributes \
--vault-name $kvName \
--name $keyName \
--enabled $enabled
키를 사용하지 않도록 설정하면 스토리지 계정의 데이터에 액세스하려는 시도가 오류 코드 403(사용할 수 없음)을 나타내며 실패합니다. 키를 사용하지 않도록 설정할 때 영향을 받는 스토리지 계정 작업 목록은 고객 관리형 키를 사용하는 스토리지 계정에 대한 액세스 해지를 참조하세요.
Microsoft 관리형 키로 다시 전환
Azure Portal, PowerShell 또는 Azure CLI를 사용하여 언제든지 고객 관리형 키에서 Microsoft 관리형 키로 다시 전환할 수 있습니다.
Azure Portal을 통해 고객 관리형 키에서 Microsoft 관리형 키로 다시 전환하려면 다음 단계를 따릅니다.
본인의 저장소 계정으로 이동합니다.
보안 + 네트워킹에서 암호화를 선택합니다.
암호화 유형을 Microsoft 관리형 키로 변경합니다.
PowerShell을 사용하여 고객 관리형 키에서 Microsoft 관리형 키로 다시 전환하려면 다음 예제와 같이 -StorageEncryption 옵션을 사용하여 Set-AzStorageAccount 명령을 호출합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.
Azure CLI를 사용하여 고객 관리형 키에서 Microsoft 고객 관리형 키로 다시 전환하려면 다음 예제와 같이 az storage account update를 호출하고 --encryption-key-source parameter를 Microsoft.Storage로 설정합니다. 대괄호 안의 자리 표시자 값을 사용자 고유의 값으로 바꾸고 위의 예제에 정의된 변수를 사용해야 합니다.