다음을 통해 공유


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

개요

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

정책 정의 만들기 및 할당

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

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

키 회전 정책 준수의 스크린샷.

리소스