다음을 통해 공유


자격 증명 모음 액세스 정책에서 Azure 역할 기반 액세스 제어 권한 모델로 마이그레이션

Azure Key Vault는 Azure RBAC(Azure 역할 기반 액세스 제어) 및 액세스 정책 모델이라는 두 가지 권한 부여 시스템을 제공합니다. Azure RBAC는 Azure Key Vault에 대한 기본 및 권장 권한 부여 시스템입니다. 두 가지 권한 부여 방법을 비교하려면 Azure RBAC(역할 기반 액세스 제어) 및 액세스 정책을 참조하세요.

이 문서에서는 키 볼트를 액세스 정책 모델에서 Azure RBAC 모델로 전환하는 데 필요한 정보를 제공합니다.

Azure 역할 매핑에 대한 액세스 정책

Azure RBAC는 사용자, 그룹, 서비스 주체 및 관리 ID에 할당할 수 있는 여러 가지 Azure 기본 제공 역할을 제공합니다. 기본 제공 역할이 조직의 특정 요구 사항을 충족하지 않는 경우 사용자 고유의 Azure 사용자 지정 역할을 만들 수 있습니다.

키, 인증서 및 비밀 액세스 관리에 대한 Key Vault 기본 제공 역할:

  • Key Vault 관리자
  • 키 자격 증명 모음 읽기 권한자
  • Key Vault 제거 운영자
  • Key Vault 인증서 책임자
  • Key Vault 인증서 사용자
  • Key Vault 암호화 책임자
  • Key Vault 암호화 사용자
  • Key Vault 암호화 서비스 암호화 사용자
  • Key Vault 암호화 서비스 릴리스 사용자
  • Key Vault 비밀 책임자
  • Key Vault 비밀 사용자

기존 기본 제공 역할에 대한 자세한 내용은 Azure 기본 제공 역할을 참조하세요.

볼트 액세스 정책은 개별적으로 선택된 권한 또는 미리 정의된 권한 설정 템플릿을 사용하여 할당할 수 있습니다.

액세스 정책 미리 정의된 권한 템플릿:

  • 키, 비밀, 인증서 관리
  • 키 및 비밀 관리
  • 비밀 및 인증서 관리
  • 키 관리
  • 비밀 관리
  • 인증서 관리
  • SQL Server 커넥터
  • Azure Data Lake Storage 또는 Azure Storage
  • Azure 백업
  • Exchange Online 고객 키
  • SharePoint Online 고객 키
  • Azure Information BYOK

Azure 역할 매핑에 대한 액세스 정책 템플릿

액세스 정책 템플릿 운영 Azure 역할
키, 비밀, 인증서 관리 키: 모든 작업
인증서: 모든 작업
비밀: 모든 작업
Key Vault 관리자
키 및 비밀 관리 키: 모든 작업
비밀: 모든 작업
키 자격 증명 모음 암호화 책임자
Key Vault 비밀 책임자
비밀 및 인증서 관리 인증서: 모든 작업
비밀: 모든 작업
키 자격 증명 모음 인증서 책임자
Key Vault 비밀 책임자
키 관리 키: 모든 작업 Key Vault 암호화 책임자
비밀 관리 비밀: 모든 작업 Key Vault 비밀 책임자
인증서 관리 인증서: 모든 작업 Key Vault 인증서 책임자
SQL Server 커넥터 키: 가져오기, 나열하기, 키 감싸기, 키 풀기 Key Vault 암호화 서비스 암호화 사용자
Azure Data Lake Storage 또는 Azure Storage 키: 가져오기, 나열, 키 래핑 해제 해당 없음
사용자 지정 역할 필요
Azure 백업 키: 가져오기, 나열, 백업
비밀: 가져오기, 나열, 백업
해당 없음
사용자 지정 역할 필요
Exchange Online 고객 키 키: 가져오기, 나열하기, 키 감싸기, 키 풀기 Key Vault 암호화 서비스 암호화 사용자
Exchange Online 고객 키 키: 가져오기, 나열하기, 키 감싸기, 키 풀기 Key Vault 암호화 서비스 암호화 사용자
Azure Information BYOK 키: 가져오기, 암호 해독, 서명 해당 없음
사용자 지정 역할 필요

할당 범위 매핑

키 자격 증명 모음용 Azure RBAC를 사용하면 다음 범위에서 역할을 할당할 수 있습니다.

  • 관리 그룹
  • 구독
  • 리소스 그룹
  • 키 볼트 리소스
  • 개별 키, 비밀 및 인증서

키 자격 증명 보관소 액세스 정책 권한 모델은 키 자격 증명 보관소 리소스 수준에서만 정책을 할당할 수 있도록 제한됩니다.

일반적으로 애플리케이션당 하나의 키 자격 증명 모음을 사용하고 키 자격 증명 모음 수준에서 액세스를 관리하는 것이 좋습니다. 다른 범위에서 액세스를 관리하면 액세스 관리를 간소화할 수 있는 시나리오가 있습니다.

  • 인프라, 보안 관리자 및 운영자: 자격 증명 모음 액세스 정책을 사용하여 관리 그룹, 구독 또는 리소스 그룹 수준에서 키 자격 증명 모음 그룹을 관리하려면 각 키 자격 증명 모음에 대한 정책을 유지 관리해야 합니다. Azure RBAC를 통해 관리 그룹, 구독 또는 리소스 그룹에서 하나의 역할 할당을 만들 수 있습니다. 이 할당은 동일한 범위에서 만든 모든 새 키 자격 증명 모음에 적용됩니다. 이 시나리오에서는 영구 액세스를 제공하는 것보다 Privileged Identity Management를 통한 즉시 액세스를 사용하는 것이 좋습니다.

  • 애플리케이션: 애플리케이션이 다른 애플리케이션과 비밀을 공유해야 하는 시나리오가 있습니다. 자격 증명 모음 액세스 정책을 사용하면 모든 비밀에 대한 액세스 권한을 부여하지 않도록 별도의 키 자격 증명 모음을 만들어야 했습니다. Azure RBAC를 사용하면 단일 키 자격 증명 모음을 사용하는 대신 개별 비밀의 범위를 사용하여 역할을 할당할 수 있습니다.

마이그레이션 방법

액세스 정책에서 RBAC로 키 저장소를 마이그레이션하려면 다음 단계를 수행합니다.

  • 준비: 적절한 권한과 애플리케이션의 인벤토리가 있는지 확인합니다.
  • 인벤토리: 모든 기존 액세스 정책 및 권한을 문서화합니다.
  • RBAC 역할 만들기: 각 보안 주체에 적절한 RBAC 역할을 할당합니다.
  • RBAC 사용: RBAC 권한 모델을 사용하도록 키 자격 증명 모음을 전환합니다.
  • 유효성 검사: 모든 애플리케이션과 사용자가 적절한 액세스를 유지하도록 액세스를 테스트합니다.
  • 모니터: 액세스 문제에 대한 모니터링 및 경고를 설정합니다.

필수 조건

마이그레이션을 시작하기 전에 다음이 있는지 확인합니다.

  1. 필요한 권한: 키 볼트에 대해 다음 권한이 있어야 합니다.

    • Microsoft.Authorization/roleAssignments/write 소유자 및 사용자 액세스 관리자 역할에 포함된 권한
    • Microsoft.KeyVault/vaults/write Key Vault 기여자 역할에 포함된 권한

    참고

    클래식 구독 관리자 역할(서비스 관리자 및 Co-Administrator)은 지원되지 않습니다.

  2. 애플리케이션 및 ID 인벤토리: 키 자격 증명 모음에 액세스하는 모든 애플리케이션, 서비스 및 사용자를 나열하고 모든 현재 액세스 정책 및 부여 권한을 문서화합니다.

현재 액세스 정책 목록

보안 주체(사용자, 그룹, 서비스 주체) 및 해당 사용 권한을 기록하여 모든 기존 액세스 정책을 문서화합니다.

Azure CLI az keyvault show 명령을 사용하여 액세스 정책을 검색합니다.

# List all current access policies
az keyvault show --name <vault-name> --resource-group <resource-group-name> --query properties.accessPolicies

동등한 RBAC 역할 할당 만들기

액세스 정책이 있는 각 보안 주체에 대해 위의 매핑 테이블을 기반으로 하나 이상의 RBAC 역할 할당을 만듭니다.

az role assignment create 명령을 사용하여 적절한 역할을 부여합니다.

# Example for Key Vault Administrator role:
az role assignment create --role "Key Vault Administrator" --assignee "<object-id-or-email>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"

# Example for Key Vault Secrets Officer:
az role assignment create --role "Key Vault Secrets Officer" --assignee "<object-id-or-email>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"

# Example for Key Vault Crypto Officer:
az role assignment create --role "Key Vault Crypto Officer" --assignee "<object-id-or-email>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"

# Example for Key Vault Certificates Officer:
az role assignment create --role "Key Vault Certificates Officer" --assignee "<object-id-or-email>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"

RBAC 권한 모델 사용

필요한 모든 역할 할당을 만든 후, 금고를 RBAC 권한 모델로 전환합니다.

az keyvault update 명령을 사용하여 RBAC를 사용하도록 설정합니다.

# Switch the vault to RBAC permission model
az keyvault update --name <vault-name> --resource-group <resource-group-name> --enable-rbac-authorization true

액세스 유효성 검사

보관소에 대한 액세스를 테스트하여 모든 애플리케이션과 사용자가 여전히 필요한 작업을 수행할 수 있는지 확인합니다.

다음 명령을 사용하여 액세스를 테스트합니다.

# Try to list secrets to verify access
az keyvault secret list --vault-name <vault-name>

# Try to get a secret to verify access
az keyvault secret show --vault-name <vault-name> --name <secret-name>

모니터링 및 경고 설정

마이그레이션 후 액세스 문제를 감지하도록 적절한 모니터링을 설정합니다.

az monitor diagnostic-settings create 명령을 사용합니다.

# Enable diagnostics logging for Key Vault
az monitor diagnostic-settings create --resource <vault-id> --name KeyVaultLogs --logs "[{\"category\":\"AuditEvent\",\"enabled\":true}]" --workspace <log-analytics-workspace-id>

Azure Policy를 사용하여 마이그레이션 거버넌스

Azure Policy 서비스를 사용하여 볼트 간에 RBAC 권한 모델 마이그레이션을 관리할 수 있습니다. 사용자 지정 정책 정의를 만들어 기존 키 자격 증명 모음을 감사하고 모든 새 키 자격 증명 모음이 Azure RBAC 권한 모델을 사용하도록 할 수 있습니다.

Key Vault Azure RBAC 권한 모델에 대한 정책 정의 만들기 및 할당

  1. 정책 리소스로 이동
  2. Azure Policy 페이지의 왼쪽에 있는 작성 아래에서 할당 선택
  3. 정책 할당하기를 페이지 맨 위에서 선택하세요.
  4. 다음 정보를 입력합니다.
  5. 과제를 검토하고 작성하여 완료하세요.

정책이 할당되면 검사를 완료하는 데 최대 24시간이 걸릴 수 있습니다. 검사가 완료되면 Azure Policy 대시보드에서 준수 결과를 볼 수 있습니다.

Azure RBAC 비교 도구에 대한 액세스 정책

중요

이 도구는 공식적인 고객 지원 서비스 지원 없이 Microsoft 커뮤니티 구성원이 빌드하고 유지 관리합니다. 도구는 어떤 종류의 보증도 없이 있는 그대로 제공됩니다.

액세스 정책을 RBAC 권한 모델 마이그레이션에 도움이 되도록 Key Vault 액세스 정책을 할당된 RBAC 역할과 비교하는 PowerShell 도구입니다. 도구 의도는 기존 Key Vault를 RBAC 권한 모델로 마이그레이션할 때 온전성 검사를 제공하여 기본 데이터 작업이 있는 할당된 역할이 기존 액세스 정책을 포함하도록 하는 것입니다.

일반적인 문제 해결

  • 역할 할당 지연: 역할 할당이 전파되는 데 몇 분 정도 걸릴 수 있습니다. 애플리케이션에서 재시도 논리를 구현합니다.
  • 복구 후 역할 할당 손실: 소프트 삭제 후 자격 저장소를 복구할 때 역할 할당이 유지되지 않습니다. 복구 후 모든 역할 할당을 다시 만들어야 합니다.
  • 액세스 거부 오류: 다음을 확인합니다.
    • 올바른 역할이 올바른 범위에 할당됩니다.
    • 서비스 주체 또는 관리 ID에 필요한 정확한 권한이 있습니다.
    • 네트워크 액세스 규칙이 연결을 차단하지 않음
  • 마이그레이션 후 스크립트 실패: 대신 역할 할당을 사용하도록 액세스 정책을 사용하는 모든 스크립트를 업데이트합니다.

자세한 정보