Azure Key Vault에서 암호화 키 자동 회전 구성

개요

Key Vault에서 암호화 키 순환을 자동화하면 사용자는 지정된 빈도에 따라 새로운 키 버전을 자동으로 생성하도록 Key Vault를 구성할 수 있습니다. 회전을 구성하려면 각 개별 키에 정의할 수 있는 키 회전 정책을 사용할 수 있습니다.

암호화 모범 사례를 충족하도록 적어도 2년마다 암호화 키를 회전하는 것이 좋습니다.

키 자격 증명 모음의 개체 버전 관리 방법에 대한 자세한 내용은 Key Vault 개체, 식별자 및 버전 관리를 참조하세요.

Azure 서비스와의 통합

이 기능을 사용하면 Azure Key Vault에 저장된 CMK(고객 관리형 키)를 사용하여 Azure 서비스의 미사용 암호화에 대한 엔드투엔드 무인 회전이 가능합니다. 서비스에서 엔드투엔드 회전을 제공하는지 확인하려면 관련 Azure 서비스 설명서를 참조하세요.

Azure의 데이터 암호화에 대한 자세한 내용은 다음을 참조하세요.

가격 책정

예약된 키 순환당 추가 비용이 발생합니다. 자세한 내용은 Azure Key Vault 가격 책정 페이지를 참조하세요.

필수 사용 권한

Key Vault 키 회전 기능을 사용하려면 키 관리 권한이 필요합니다. "Key Vault 암호화 책임자" 역할을 할당하여 회전 정책 및 주문형 회전을 관리할 수 있습니다.

Key Vault RBAC 권한 모델을 사용하여 Azure 역할을 할당하는 방법에 대한 자세한 내용은 Azure RBAC를 사용하여 키, 인증서 및 비밀에 대한 액세스 제어를 참조하세요.

참고 항목

액세스 정책 권한 모델을 사용하는 경우 키의 회전 정책을 관리하려면 '회전', '회전 정책 설정' 및 '회전 정책 가져오기' 키 권한을 설정해야 합니다.

키 회전 정책

키 순환 정책을 사용하면 순환 및 Event Grid 알림의 만료 임박 알림을 구성할 수 있습니다.

키 회전 정책 설정:

  • 만료 시간: 키 만료 간격입니다. 새로 순환된 키의 만료 날짜를 설정하는 데 사용됩니다. 현재 키에는 영향을 주지 않습니다.
  • 사용/사용 안 함: 키 회전을 사용하거나 사용하지 않도록 설정하는 플래그
  • 회전 유형:
    • 키를 만든 후 지정된 시간에 자동으로 갱신(기본값)
    • 만료 전에 지정된 시간에 자동으로 갱신. 회전 정책에서 '만료 시간'을 설정하고 키에서 '만료 날짜'를 설정해야 합니다.
  • 순환 시간: 키 순환 간격. 최솟값은 생성 후 7일 및 만료 시간으로부터 7일입니다.
  • 알림 시간: 만료 이벤트가 임박한 키의 이벤트 그리드 알림 간격입니다. 회전 정책에서 '만료 시간'을 설정하고 키에서 '만료 날짜'를 설정해야 합니다.

Important

키 순환은 새 키 자료를 사용하여 기존 키의 새 키 버전을 생성합니다. 대상 서비스는 버전 없는 키 URI를 사용하여 최신 버전의 키로 자동으로 새로 고쳐야 합니다. 데이터 암호화 솔루션이 암호 해독/래핑 해제 작업에 대해 암호화/래핑 작업에 사용된 것과 같은 키 자료를 가리키는 데이터와 함께 버전이 지정된 키 URI를 저장하도록 하여 서비스 중단을 방지합니다. 모든 Azure 서비스는 현재 데이터 암호화에 대해 해당 패턴을 따르고 있습니다.

Rotation policy configuration

키 회전 정책 구성

키를 만드는 동안 키 회전 정책을 구성합니다.

Configure rotation during key creation

기존 키의 회전 정책을 구성합니다.

Configure rotation on existing key

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)}

주문형 회전

키 회전을 수동으로 호출할 수 있습니다.

포털

'지금 회전'을 클릭하여 회전을 호출합니다.

Rotation on-demand

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와의 통합을 통해 사용자 지정 자동화된 회전에 대한 트리거로 구성할 수 있습니다. 만료까지 남은 년, 월, 일로 알림을 구성하여 만료 임박 이벤트를 트리거할 수 있습니다.

Configure Notification

Key Vault의 Event Grid 알림에 대한 자세한 내용은 Event Grid 원본으로 사용되는 Azure Key Vault를 참조하세요.

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 서비스를 사용하여 키 수명 주기를 제어하고 모든 키가 지정된 일 수 내에 회전하도록 구성되었는지 확인할 수 있습니다.

정책 정의 만들기 및 할당

  1. 정책 리소스로 이동
  2. Azure Policy 페이지의 왼쪽에 있는 작성에서 할당을 선택합니다.
  3. 페이지 맨 위에서 정책 할당을 선택합니다. 이 단추를 선택하면 정책 할당 페이지가 열립니다.
  4. 다음 정보를 입력합니다.
  5. 추가 필드를 입력합니다. 페이지 아래쪽의 이전다음 단추를 클릭하는 탭을 탐색합니다.
  6. 검토 + 만들기를 선택합니다.
  7. 만들기를 선택합니다.

기본 제공 정책이 할당되면 검사를 완료하는 데 최대 24시간이 걸릴 수 있습니다. 검사가 완료되면 아래와 같이 컴플라이언스 결과를 볼 수 있습니다.

Screenshot of key rotation policy compliance.

리소스