Invoke-SqlColumnMasterKeyRotation

열 마스터 키 순환을 시작합니다.

Syntax

Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [-InputObject] <Database>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]
Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [[-Path] <String>]
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]

Description

Invoke-SqlColumnMasterKeyRotation cmdlet은 기존 원본 열 master 키를 Always Encrypted 기능에 대한 새 대상 열 master 키로 바꾸기 시작합니다.

cmdlet은 지정된 원본 열 master 키로 암호화된 암호화된 키 값을 포함하는 모든 열 암호화 키 개체를 검색합니다.

그런 다음 cmdlet은 현재 암호화된 값을 해독하고 대상 열 master 키로 결과 일반 텍스트 값을 다시 암호화한 다음 영향을 받은 열 암호화 키 개체를 업데이트하여 새 암호화된 값을 추가합니다.

결과적으로 영향을 받은 각 열 암호화 키에는 두 개의 암호화된 값이 포함됩니다. 하나는 현재 원본 열 master 키를 사용하여 생성되고 다른 하나는 대상 열 master 키를 사용하여 생성됩니다.

원본 또는 대상 열 master 키가 Azure에 저장된 경우 키 자격 증명 모음 또는 키를 보유하는 관리형 HSM에 대해 유효한 인증 토큰(또는 토큰)을 지정해야 합니다. 또는 이 cmdlet을 호출하기 전에 Add-SqlAzureAuthenticationContext 사용하여 Azure에 인증할 수 있습니다.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

예제

예제 1: 열 master 키를 회전하는 프로세스를 시작합니다.

Invoke-SqlColumnMasterKeyRotation -SourceColumnMasterKeyName "CMK1" -TargetColumnMasterKeyName "CMK2"

이 명령은 CMK1이라는 열 master 키를 회전하고 CMK2라는 열 master 키로 바꾸는 프로세스를 시작합니다.

예제 2: 지정된 인증 토큰을 사용하여 열 master 키를 회전하는 프로세스를 시작합니다.

# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount

# Obtain access tokens. 
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token  
$managedHSMAccessToken = (Get-AzAccessToken -ResourceUrl https://managedhsm.azure.net).Token  

# Pass the tokens to the cmdlet.  
Invoke-SqlColumnMasterKey -SourceColumnMasterKeyName CMK1 -TargetColumnMasterKeyName CMK2 -KeyVaultAccessToken $keyVaultAccessToken -ManagedHSMAccessToken $managedHSMAccessToken

이 예제에서는 CMK1이라는 열 master 키를 회전하고 CMK2라는 열 master 키로 바꾸는 프로세스를 시작합니다. 키 중 하나가 키 자격 증명 모음에 저장되고 다른 키는 Azure Key Vault 관리되는 HSM에 저장된다고 가정합니다. 는 Invoke-SqlColumnMasterKey 가져온 인증 토큰을 사용하여 키 자격 증명 모음 및 관리형 HSM 엔드포인트와 통신합니다.

매개 변수

-AccessToken

사용자/암호 또는 Windows 인증 대신 SQL Server 인증하는 데 사용되는 액세스 토큰입니다.

예를 들어 또는 에 연결 SQL Azure DB 하고 를 사용하는 Service Principal 데 사용할 수 있습니다Managed IdentitySQL Azure Managed Instance.

사용할 매개 변수는 토큰을 나타내는 문자열이거나 PSAccessToken 를 실행 Get-AzAccessToken -ResourceUrl https://database.windows.net하여 반환된 개체일 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

SQL Server 연결할 때 사용할 암호화 유형입니다.

이 값은 Encrypt Microsoft.Data.SqlClient 드라이버의 SqlConnection 개체에 있는 속성 SqlConnectionEncryptOption 에 매핑됩니다.

모듈의 v22에서 기본값은 (v21과의 호환성을 위해) 입니다 Optional . 모듈의 v23+에서 기본값은 '필수'이며 기존 스크립트에 대한 호환성이 손상되는 변경이 발생할 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

SQL Server TLS/SSL 인증서의 유효성을 검사할 때 사용할 호스트 이름입니다. SQL Server instance 암호화 강제 적용을 사용하도록 설정하고 hostname/shortname을 사용하여 instance 연결하려는 경우 이 매개 변수를 전달해야 합니다. 이 매개 변수를 생략하면 FQDN(정규화된 도메인 이름)을 -ServerInstance에 전달하여 암호화 강제 적용을 사용하도록 설정된 SQL Server instance 연결해야 합니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

이 cmdlet이 작업을 실행하는 SQL 데이터베이스 개체를 지정합니다.

Type:Database
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyVaultAccessToken

Azure Key Vault 키 자격 증명 모음에 대한 액세스 토큰을 지정합니다. 현재 및/또는 대상 열 master 키가 Azure Key Vault 키 자격 증명 모음에 저장된 경우 이 매개 변수를 사용합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagedHsmAccessToken

Azure Key Vault 관리형 HSM에 대한 액세스 토큰을 지정합니다. 현재 및/또는 대상 열 master 키가 Azure Key Vault 관리되는 HSM에 저장된 경우 이 매개 변수를 사용합니다.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

이 cmdlet이 작업을 실행하는 SQL 데이터베이스의 경로를 지정합니다.

이 매개 변수의 값을 지정하지 않으면 cmdlet은 현재 작업 위치를 사용합니다.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

이 cmdlet이 작업을 수행하는 Transact-SQL 스크립트를 실행했음을 나타냅니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceColumnMasterKeyName

원본 열 master 키의 이름을 지정합니다.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TargetColumnMasterKeyName

대상 열 master 키의 이름을 지정합니다.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

트러스트의 유효성을 검사하기 위해 인증서 체인을 건너뛰는 동안 채널이 암호화되는지 여부를 나타냅니다.

모듈의 v22에서 기본값은 (v21과의 호환성을 위해) 입니다 $true . 모듈의 v23+에서 기본값은 '$false'이며 기존 스크립트에 대한 호환성이 손상되는 변경이 발생할 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

Microsoft.SqlServer.Management.Smo.Database