개요
Key Vault에서 자동화된 암호화 키 회전을 사용하면 사용자가 지정된 빈도로 새 키 버전을 자동으로 생성하도록 Key Vault를 구성할 수 있습니다. 회전을 구성하려면 각 개별 키에 정의할 수 있는 키 회전 정책을 사용할 수 있습니다.
암호화 모범 사례를 충족하도록 적어도 2년마다 암호화 키를 회전하는 것이 좋습니다.
Key Vault의 개체 버전 관리 방법에 대한 자세한 내용은 Key Vault 개체, 식별자 및 버전 관리를 참조하세요. Azure Key Vault의 여러 자산 유형에서 자동 이동 개념에 대한 포괄적인 이해는 Azure Key Vault의 자동 이동 이해를 참조하세요.
Azure 서비스와 통합
이 기능을 사용하면 Azure Key Vault에 저장된 CMK(고객 관리형 키)를 사용하는 Azure 서비스의 미사용 데이터 암호화에 대해 엔드 투 엔드 제로 터치 회전을 사용할 수 있습니다. 서비스가 엔드 투 엔드 회전을 포함하는지 확인하려면 특정 Azure 서비스 설명서를 참조하세요.
Azure의 데이터 암호화에 대한 자세한 내용은 다음을 참조하세요.
가격 책정
예약된 키 순환당 추가 비용이 발생합니다. 자세한 내용은 Azure Key Vault 가격 책정 페이지를 참조하세요.
필요한 권한
Key Vault 키 회전 기능에는 키 관리 권한이 필요합니다. "Key Vault Crypto Officer" 역할을 할당하여 회전 정책 및 주문형 회전을 관리할 수 있습니다.
Key Vault RBAC 권한 모델을 사용하고 Azure 역할을 할당하는 방법에 대한 자세한 내용은 Azure RBAC를 사용하여 키, 인증서 및 비밀에 대한 액세스를 제어하는 방법을 참조하세요.
비고
액세스 정책 사용 권한 모델을 사용하는 경우 키에 대한 회전 정책을 관리하려면 '회전', '회전 정책 설정' 및 '회전 정책 가져오기' 키 권한을 설정해야 합니다.
키 회전 정책
키 회전 정책을 사용하면 만료 알림에 가까운 회전 및 Event Grid 알림을 구성할 수 있습니다.
키 회전 정책 설정:
- 만료 시간: 키 만료 간격입니다. 새로 회전된 키에 만료 날짜를 설정하는 데 사용됩니다. 현재 키에는 영향을 주지 않습니다.
- 사용/사용 안 함: 키에 대한 회전을 사용하거나 사용하지 않도록 설정하는 플래그
- 회전 유형:
- 만든 후 지정된 시간에 자동으로 갱신(기본값)
- 만료되기 전에 지정된 시간에 자동으로 갱신합니다. 회전 정책에는 '만료 시간'을 설정하고 키에 '만료 날짜'를 설정해야 합니다.
- 회전 시간: 키 회전 간격, 최소값은 생성 후 7일, 만료 시간으로부터 7일입니다.
- 알림 시간: Event Grid 알림의 만료 이벤트 간격에 가까운 키입니다. 회전 정책에는 '만료 시간'을 설정하고 키에 '만료 날짜'를 설정해야 합니다.
중요합니다
키 회전은 새 키 자료를 사용하여 기존 키의 새 키 버전을 생성합니다. 대상 서비스는 버전 없는 키 URI를 사용하여 최신 버전의 키로 자동으로 새로 고쳐야 합니다. 데이터 암호화 솔루션이 암호화/래핑 작업에 사용된 것과 동일한 키 자료를 가리키도록 데이터와 버전이 지정된 키 URI를 저장하여 서비스 중단을 방지합니다. 모든 Azure 서비스는 현재 데이터 암호화에 대한 해당 패턴을 따르고 있습니다.
키 회전 정책 구성
키를 만드는 동안 키 회전 정책을 구성합니다.
기존 키에 대한 회전 정책을 구성합니다.
Azure 커맨드 라인 인터페이스 (CLI)
키 회전 정책을 파일에 저장합니다. 키 회전 정책 예제:
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "P30D"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
Azure CLI az keyvault key rotation-policy update 명령을 사용하여 이전에 저장된 파일을 전달하는 키에 대한 회전 정책을 설정합니다.
az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>
Azure PowerShell
Azure Powershell Set-AzKeyVaultKeyRotationPolicy cmdlet을 사용하여 회전 정책을 설정합니다.
Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}
요청 시 회전
키 회전은 수동으로 호출할 수 있습니다.
입구
'지금 회전'을 클릭하여 회전을 호출합니다.
Azure 커맨드 라인 인터페이스 (CLI)
Azure CLI az keyvault key rotate 명령을 사용하여 키를 회전합니다.
az keyvault key rotate --vault-name <vault-name> --name <key-name>
Azure PowerShell
Azure PowerShell Invoke-AzKeyVaultKeyRotation cmdlet을 사용합니다.
Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>
만료 알림에 가까운 키 구성
만료 이벤트에 가까운 Event Grid 키에 대한 만료 알림 구성입니다. 로컬 HSM에서 키를 가져올 때와 같이 자동화된 회전을 사용할 수 없는 경우 거의 만료 알림을 수동 회전에 대한 미리 알림으로 구성하거나 Event Grid와의 통합을 통해 사용자 지정 자동화된 회전에 대한 트리거로 구성할 수 있습니다. 만료 날짜, 월 및 몇 년 전에 알림을 구성하여 만료 이벤트가 거의 발생하도록 트리거할 수 있습니다.
Key Vault의 Event Grid 알림에 대한 자세한 내용은 Azure Key Vault를 Event Grid 원본으로 참조하세요.
ARM 템플릿을 사용하여 키 회전 구성
ARM 템플릿을 사용하여 키 회전 정책을 구성할 수도 있습니다.
비고
제어 평면을 통해 키를 배포하려면 Azure RBAC로 구성된 Key Vault에서 'Key Vault 기여자' 역할이 필요합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "String",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "String",
"metadata": {
"description": "The name of the key to be created."
}
},
"rotatationTimeAfterCreate": {
"defaultValue": "P18M",
"type": "String",
"metadata": {
"description": "Time duration to trigger key rotation. i.e. P30D, P1M, P2Y"
}
},
"expiryTime": {
"defaultValue": "P2Y",
"type": "String",
"metadata": {
"description": "The expiry time for new key version. i.e. P90D, P2M, P3Y"
}
},
"notifyTime": {
"defaultValue": "P30D",
"type": "String",
"metadata": {
"description": "Near expiry Event Grid notification. i.e. P30D"
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2021-06-01-preview",
"name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
"___location": "[resourceGroup().___location]",
"properties": {
"vaultName": "[parameters('vaultName')]",
"kty": "RSA",
"rotationPolicy": {
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "[parameters('rotatationTimeAfterCreate')]",
"timeBeforeExpiry": ""
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "[parameters('notifyTime')]"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "[parameters('expiryTime')]"
}
}
}
}
]
}
키 회전 정책 거버넌스 구성
Azure Policy 서비스를 사용하여 키 수명 주기를 제어하고 모든 키가 지정된 일 수 내에 회전하도록 구성되었는지 확인할 수 있습니다.
정책 정의 만들기 및 할당
- 정책 리소스로 이동
- Azure Policy 페이지의 왼쪽에 있는 작성 아래에서 할당을 선택합니다.
- 페이지 맨 위에서 정책 할당을 선택합니다. 이 단추를 선택하면 정책 할당 페이지가 열립니다.
- 다음 정보를 입력합니다.
- 정책을 적용할 구독 및 리소스 그룹을 선택하여 정책의 범위를 정의합니다. 범위 필드에서 세 개의 점 단추를 클릭하여 선택합니다.
- 정책 정의의 이름을 선택합니다. "키에는 회전이 생성된 후 지정된 일 수 내에 예약되도록 하는 회전 정책이 있어야 합니다. "
- 페이지 맨 위에 있는 매개 변수 탭으로 이동합니다.
- 매개 변수 를 회전할 최대 일 수를 원하는 일 수(예: 730)로 설정합니다.
- 정책(감사 또는 사용 안 함)의 원하는 효과를 정의합니다.
- 추가 필드를 입력합니다. 페이지 아래쪽의 이전 및 다음 단추를 클릭하는 탭을 탐색합니다.
- 검토 + 만들기를 선택합니다.
- 만들기를 선택하세요
기본 제공 정책이 할당되면 검사를 완료하는 데 최대 24시간이 걸릴 수 있습니다. 검사가 완료되면 아래와 같이 컴플라이언스 결과를 볼 수 있습니다.