Share via


Microsoft Azure 팩에서 암호화된 데이터 관리

 

적용 대상: Windows Azure Pack

Windows azure Pack for Windows Server는 암호화 알고리즘, 암호화 키 및 암호를 사용하여 관리 포털에서 데이터베이스와 사용자 간의 통신을 보호합니다. 이 데이터는 두세 군데에 저장됩니다.

데이터의 보안을 유지하려면 데이터를 정기적으로 변경하거나 회전해야 합니다. 한 곳에 있는 데이터를 변경한 경우 모든 위치에서 데이터를 변경해야 합니다.

Microsoft에서는 모든 암호화 알고리즘, 키 및 암호와 각각의 저장된 위치가 나열된 스프레드시트를 제공합니다. 이 스프레드시트에는 각 데이터 요소를 변경하는 방법에 대한 정보도 들어 있습니다. Microsoft 다운로드 센터에서 사용할 수 있는 Windows Azure Pack 기술 설명서 패키지(https://go.microsoft.com/fwlink/?LinkId=329811)의 스프레드시트에 액세스할 수 있습니다. 다운로드를 클릭하고 WAPv1_encryption.xsl 파일을 선택한 다음 다음을 클릭하여 파일 다운로드를 시작합니다.

Windows Azure Pack에 대한 모범 사례 분석기를 사용하여 데이터의 보안을 확인할 수도 있습니다. 모범 사례 분석기에 대한 자세한 내용은 Windows Azure 팩의 검사 구성 요소를 참조하세요.

다음 정보를 사용하여 암호화된 데이터를 관리할 수 있습니다.

  • 데이터베이스 암호 변경

  • 컴퓨터 키와 관련된 암호화된 데이터 회전

  • 암호화 알고리즘 및 키 회전

  • 사용 현황 관리 API 암호 변경

  • 리소스 공급자와 관련된 암호 변경

  • Service Reporting과 관련된 암호 변경

데이터베이스 암호 변경

Windows Azure Pack에는 여러 데이터베이스가 있으며 각 데이터베이스에는 데이터베이스 암호가 있습니다. 다음 단계를 사용하여 데이터베이스 암호를 회전할 수 있습니다.

데이터베이스 암호를 회전하려면

  1. 새 암호를 가져옵니다. 다음 cmdlet을 실행합니다.

    $password = New-MgmtSvcPassword –Length 64
    
  2. 스프레드시트의 데이터를 사용하여 첫 번째 위치에서 데이터베이스 암호를 찾아 회전합니다. 예를 들어 관리 API의 데이터베이스 암호를 회전하는 경우 첫 번째 위치는 암호 구성 저장소입니다(C 열에서 위치 1 확인).

    다음 cmdlet을 실행하여 암호를 변경합니다.

    Set-MgmtSvcDatabaseSetting <Service>  <Secret>  $password -Server <Server> -Passphrase <Passphrase> -Database “Microsoft.MgmtSvc.Config” -Force
    
  3. 그런 다음 데이터베이스 암호의 세 번째 위치를 찾아서 데이터베이스 암호를 회전합니다. 위 예제를 사용할 경우 관리 API 데이터베이스 암호의 세 번째 위치는 SQL Server 보안 로그인입니다(G 열에서 위치 3 확인).

    다음 cmdlet을 실행합니다.

    Set-MgmtSvcDatabaseUser -Server <Server> -Database <Database> -Schema <Schema> -User <User> -UserPassword $password
    
  4. 마지막으로 데이터베이스 암호의 두 번째 위치를 찾아서 암호를 회전합니다. 관리 API 데이터베이스 암호의 두 번째 위치는 web.config 연결 문자열입니다(E 열에서 위치 2 확인).

    다음 cmdlet을 실행합니다.

    $setting = Get-MgmtSvcDatabaseSetting <Service> <Secret> -Server <Server> -Passphrase <Passphrase>
    $connectionString = Get-MgmtSvcSetting $namespace <ConnectionString>
    $builder = New-Object System.Data.SqlClient.SqlConnectionStringBuilder($connectionString.Value)
    $builder.Password = $setting.Value
    Set-MgmtSvcSetting <Service> <ConnectionString> $builder.ConnectionString
    

관리 API, 관리자용 관리 포털(AdminSite), 인증 사이트(AuthSite), 테넌트용 관리 포털(TenantSite) 및 Windows 인증 사이트(WindowsAuthSite)에 대한 암호 해독 및 유효성 검사 설정과 키는 컴퓨터 키를 사용하여 저장됩니다. 다음 단계를 사용하여 이 데이터를 회전할 수 있습니다.

  1. 새 컴퓨터 키를 가져옵니다. 다음 예제에서는 관리 API 서비스의 machineKey.decrytpion에 대한 새 컴퓨터 키를 가져옵니다. 이러한 단계를 사용하여 컴퓨터 키의 다른 값을 변경할 수 있습니다.

    다음 cmdlet을 실행하여 새 컴퓨터 키를 가져옵니다.

    $machineKey = New-MgmtSvcMachineKey
    $decryption = $machineKey.Attribute('decryption').Value
    
  2. 스프레드시트의 데이터를 사용하여 machineKey.decryption의 첫 번째 위치를 찾습니다. 관리 API 서비스의 경우 비밀 구성 Microsoft Store.

    다음 cmdlet을 실행하여 machineKey.decryption 설정을 변경합니다.

    Set-MgmtSvcDatabaseSetting <Service> "machineKey.decryption" $decryption -Server <Server> -Passphrase <Passphrase> -Force
    
  3. machineKey.decryption의 두 번째 위치를 찾습니다. 관리 API 서비스의 경우 web.config machineKey 섹션입니다.

    다음 cmdlet을 실행하여 machineKey.decryption 설정을 변경합니다.

    $decryption = Get-MgmtSvcDatabaseSetting <Service> “machineKey.decryption” –Server <Server> -Passphrase <Passphrase>
    Set-MgmtSvcSetting <Service> "machineKey.decryption" $decryption.Value
    

암호화 알고리즘 및 키 회전

다음 단계를 사용하여 암호화 알고리즘 및 암호화 키를 회전할 수 있습니다.

암호화 알고리즘 및 암호화 키를 회전하려면

  1. 새 컴퓨터 키를 가져옵니다. 다음 예제에서는 관리 사이트의 알림 암호화 알고리즘 및 키에 대한 새 컴퓨터 키를 가져옵니다. 이러한 단계를 사용하여 다른 암호화 알고리즘 및 키를 변경할 수 있습니다.

    참고

    암호화와 암호 해독 모두에 동일한 키가 사용되므로 수행되는 작업에 따라 암호화 키 또는 암호 해독 키로 간주될 수 있습니다. 따라서 회전하는 키가 암호화 키이지만 아래의 암호 해독 값을 사용합니다.

    다음 cmdlet을 실행하여 새 컴퓨터 키를 가져옵니다.

    $machineKey = New-MgmtSvcMachineKey
    $encryption = $machineKey.Attribute('decryption').Value
    $encryptionKey = $machineKey.Attribute('decryptionKey').Value
    
  2. 스프레드시트의 데이터를 사용하여 암호화 알고리즘 또는 키의 첫 번째 위치를 찾습니다. 관리 사이트에 대한 알림 암호화 알고리즘 및 키의 경우 첫 번째 위치는 암호 구성 저장소입니다.

    다음 cmdlet을 실행하여 암호화 알고리즘 및 키를 변경합니다.

    Set-MgmtSvcDatabaseSetting <Service> "NotificationEncryptionAlgorithm " $encryption -Server <Server> -Passphrase <Passphrase> -Force
    Set-MgmtSvcDatabaseSetting <Service> "EncryptionKey " $encryptionKey -Server <Server> -Passphrase <Passphrase> -Force
    
  3. 암호화 알고리즘 또는 키의 두 번째 위치를 찾습니다. 관리 사이트에 대한 알림 암호화 알고리즘 및 키의 경우 두 번째 위치는 web.config 응용 프로그램 설정 섹션입니다.

    다음 cmdlet을 실행하여 암호화 알고리즘 및 키를 변경합니다.

    $encryption = Get-MgmtSvcDatabaseSetting <Service> “NotificationEncryptionAlgorithm” –Server <Server> -Passphrase <Passphrase>
    Set-MgmtSvcSetting <Service> "NotificationEncryptionAlgorithm" $encryption.Value
    $encryptionKey = Get-MgmtSvcDatabaseSetting <Service> “EncryptionKey” –Server <Server> -Passphrase <Passphrase>
    Set-MgmtSvcSetting <Service> "EncryptionKey" $encryptionKey.Value
    

사용 현황 관리 API 암호 변경

리소스 공급자(다음 섹션 참조)가 사용하는 암호와 달리 사용 현황 관리 API의 암호는 암호 구성 저장소 및 web.config 응용 프로그램 설정 섹션에 저장됩니다. 다음 단계를 사용하여 사용 현황 관리 API 암호를 변경할 수 있습니다.

사용 현황 관리 API 암호를 회전하려면

  1. 새 암호를 가져옵니다. 다음 cmdlet을 실행합니다.

    $password = New-MgmtSvcPassword
    
  2. 첫 번째 위치인 암호 구성 저장소에서 암호를 변경합니다. 다음 cmdlet을 실행합니다.

    Set-MgmtSvcDatabaseSetting <Service>  <Secret>  $password -Server <Server> -Passphrase <Passphrase> -Force
    
  3. 두 번째 위치인 web.config 응용 프로그램 설정 섹션에서 암호를 변경합니다. 다음 cmdlet을 실행합니다.

    $setting = Get-MgmtSvcDatabaseSetting <Service> <Secret> -Server <Server> -Passphrase <Passphrase>
    Set-MgmtSvcSetting <Service> <Secret> $setting.Value
    

다음 정보를 사용하여 모니터링, MySQL, SQL Server 및 사용 현황 리소스 공급자에 대한 암호를 회전할 수 있습니다.

리소스 공급자 암호를 회전하려면

  1. 리소스 공급자에 대한 새 암호를 가져옵니다. 다음 cmdlet을 실행합니다.

    $password = New-MgmtSvcPassword
    
  2. 첫 번째 위치에서 암호를 변경합니다. 다음 cmdlet을 실행합니다.

    Set-MgmtSvcDatabaseSetting <Service> “Password” $pw -Server <Server> -Passphrase <Passphrase> -Force
    
  3. 세 번째 위치에서 암호를 변경합니다.

    참고

    모니터링 서비스의 경우 암호를 "MonitoringRestBasicAuthKnownPassword"라고 하며, 다른 리소스 공급자의 경우 암호를 "Password"라고 합니다.

    다음 cmdlet을 실행합니다.

    Set-MgmtSvcSetting <Service>  “Password” $pw -Encode
    
  4. 두 번째 위치에서 암호를 변경합니다.

    참고

    다음 cmdlet은 4개의 엔드포인트 모두에 대한 암호를 변경하지만 일부 리소스 공급자에는 일부 엔드포인트가 없습니다. $rp의 결과를 보고 각 리소스 공급자의 엔드포인트를 확인한 후 AuthenticationPassword 값을 적절하게 조정하세요.

    다음 cmdlet을 실행합니다.

    $rp = Get-MgmtSvcResourceProviderConfiguration <Resource Provider Name> -DecryptPassword
    $rp.AdminEndpoint.AuthenticationPassword = $pw
    $rp.TenantEndpoint.AuthenticationPassword = $pw
    $rp.UsageEndpoint.AuthenticationPassword = $pw
    $rp.NotificationEndpoint.AuthenticationPassword = $pw
    Add-MgmtSvcResourceProviderConfiguration $rp -Force
    

Windows Azure Pack에서 Service Reporting을 사용하는 경우 사용량 서비스에 대한 암호를 변경할 때 Service Reporting용 SQL VM에서 암호를 업데이트해야 합니다.

다음 단계를 사용하여 암호를 다시 설정할 수 있습니다.

Service Reporting에 대한 SQL VM 암호를 변경하려면

  1. Service Reporting을 지원하는 SQL 데이터베이스를 설치한 VM에서 Service Reporting SQL 에이전트 작업이 실행되고 있지 않은지 확인합니다. 다음 단계를 사용하여 작업의 상태를 확인할 수 있습니다.

    1. <접두사> DW-SQL\CPSDW 데이터베이스 인스턴스로 커넥트.

    2. 개체 탐색기 SQL Server 에이전트 확장합니다.

    3. 작업을 클릭합니다.

    4. 보기 탭에서 개체 탐색기 세부 정보를 클릭합니다.

      상태 열을 확인하여 에이전트 작업이 실행 중인지 확인합니다.

  2. Service Reporting에는 암호를 변경하기 위해 실행할 수 있는 스크립트가 포함되어 있습니다. PowerShell 명령 프롬프트에서 다음 cmdlet을 실행하여 이 스크립트를 실행합니다.

    \\<Service reporting host>\ServiceReporting\Maintenance\PostDeploymentConfig.ps1 -User UsageClient –Password $newPassword