다음을 통해 공유


Update-AzCosmosDbClientEncryptionKey

CosmosDB 클라이언트 암호화 키를 업데이트. 기존 클라이언트 암호화 키를 읽어 클라이언트 쪽 패치 작업을 수행합니다.

구문

Update-AzCosmosDbClientEncryptionKey
      -ResourceGroupName <String>
      -AccountName <String>
      -DatabaseName <String>
      -Name <String>
      -KeyWrapMetadata <PSSqlKeyWrapMetadata>
      [-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-AzCosmosDbClientEncryptionKey
      -Name <String>
      -KeyWrapMetadata <PSSqlKeyWrapMetadata>
      [-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
      -SqlDatabaseObject <PSSqlDatabaseGetResults>
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-AzCosmosDbClientEncryptionKey
      -KeyWrapMetadata <PSSqlKeyWrapMetadata>
      [-KeyEncryptionKeyResolver <IKeyEncryptionKeyResolver>]
      -InputObject <PSSqlClientEncryptionKeyGetResults>
      [-DefaultProfile <IAzureContextContainer>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

Update-AzCosmosDbClientEncryptionKey는 CosmosDb 클라이언트 암호화 키를 업데이트합니다. 기존 CosmosDB 클라이언트 암호화 키를 읽어 클라이언트 쪽 패치 작업을 수행합니다.

예제

예 1

$updatedKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV2","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
Update-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -Name myClientEncryptionKeyName -KeyWrapMetadata $updatedKeyWrapMetadataObject

Name     : myContainerName
Id       : /subscriptions/mySubscriptionId/resourceGroups/myRgName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlDatabases/myDatabaseName/clientEncryptionKeys/myClientEncryptionKeyName
Resource : Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionKeyGetPropertiesResource

이 예제에서는 키를 업데이트하는 방법을 보여줍니다. KeyEncryptionKeyResolver가 전달되지 않은 경우 Azure Key Vault KeyResolver는 기본적으로 사용됩니다. 첫 번째 명령은 키 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 로 설정된 값과 키를 암호화하는 데 사용되는 알고리즘 형식 "RSA-OAEP"로 설정된 AZURE_KEY_VAULT 형식의 myKekV2 이름을 가진 KeyWrapMetadata 개체를 만듭니다. 두 번째 명령에서 myClientEncryptionKeyName 변수에 설정된 이름의 키가 첫 번째 명령에서 반환된 값으로 설정된 KeyWrapMetadata로 업데이트됩니다.

예제 2

$updatedKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV2","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
$azureKeyVaultKeyResolver = [Azure.Security.KeyVault.Keys.Cryptography.KeyResolver]::new([Azure.Identity.DefaultAzureCredential]::new())
Update-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -Name myClientEncryptionKeyName -KeyWrapMetadata $updatedKeyWrapMetadataObject -KeyEncryptionKeyResolver $azureKeyVaultKeyResolver

Name     : myContainerName
Id       : /subscriptions/mySubscriptionId/resourceGroups/myRgName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlDatabases/myDatabaseName/clientEncryptionKeys/myClientEncryptionKeyName
Resource : Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionKeyGetPropertiesResource

이 예제에서는 키가 업데이트되는 방법과 KeyEncryptionKeyResolver를 매개 변수로 전달하는 방법을 보여 줍니다. 첫 번째 명령은 키 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 로 설정된 값과 키를 암호화하는 데 사용되는 알고리즘 형식 "RSA-OAEP"로 설정된 AZURE_KEY_VAULT 형식의 myKekV2 이름을 가진 KeyWrapMetadata 개체를 만듭니다. 두 번째 명령은 Azure 기본 자격 증명을 사용하여 Azure Key Vault KeyResolver 개체를 만듭니다. 세 번째 명령에서 myClientEncryptionKeyName 변수에 설정된 이름의 키가 첫 번째 명령에서 반환된 값으로 설정된 KeyWrapMetadata와 두 번째 명령을 통해 가져온 KeyResolver 개체로 설정된 KeyEncryptionKeyResolver 값으로 업데이트됩니다.

예 3

$updatedKeyWrapMetadataObject = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlKeyWrapMetadata]::new([Microsoft.Azure.Management.CosmosDB.Models.KeyWrapMetadata]::new("myKekV2","AZURE_KEY_VAULT", "https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71", "RSA-OAEP"))
$keyToUpdate = Get-AzCosmosDbClientEncryptionKey -AccountName myAccountName -DatabaseName myDatabaseName -ResourceGroupName myRgName -ClientEncryptionKeyName myClientEncryptionKeyName
Update-AzCosmosDbClientEncryptionKey -InputObject $keyToUpdate -KeyWrapMetadata $updatedKeyWrapMetadataObject -KeyEncryptionKeyResolver $azureKeyVaultKeyResolver

Name     : myContainerName
Id       : /subscriptions/mySubscriptionId/resourceGroups/myRgName/providers/Microsoft.DocumentDB/databaseAccounts/myAccountName/sqlDatabases/myDatabaseName/clientEncryptionKeys/myClientEncryptionKeyName
Resource : Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionKeyGetPropertiesResource

이 예제에서는 업데이트해야 하는 키를 읽어 가져온 InputObject를 사용하여 키를 업데이트하는 방법을 보여줍니다. 첫 번째 명령은 키 ID https://contoso.vault.azure.net/keys/myKekV2/78deebed173b48e48f55abf87ed4cf71 로 설정된 값과 키를 암호화하는 데 사용되는 알고리즘 형식 "RSA-OAEP"로 설정된 AZURE_KEY_VAULT 형식의 myKekV2 이름을 가진 KeyWrapMetadata 개체를 만듭니다. 두 번째 명령에서 업데이트할 키를 읽습니다. 세 번째 명령은 두 번째 명령의 앞부분에서 읽은 키를 업데이트합니다. 두 번째 명령에서 읽은 개체는 첫 번째 명령에서 가져온 업데이트된 KeyWrapMetadata와 함께 InputObject로 전달됩니다.

매개 변수

-AccountName

Cosmos DB 데이터베이스 계정의 이름입니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

형식:SwitchParameter
별칭:cf
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DatabaseName

데이터베이스 이름입니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DefaultProfile

Azure와의 통신에 사용되는 자격 증명, 계정, 테넌트 및 구독입니다.

형식:IAzureContextContainer
별칭:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

클라이언트 암호화 키 개체입니다.

형식:PSSqlClientEncryptionKeyGetResults
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-KeyEncryptionKeyResolver

Azure.Core.Cryptography.IKeyEncryptionKeyResolver 형식의 IKeyEncryptionKeyResolver 인터페이스

형식:IKeyEncryptionKeyResolver
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-KeyWrapMetadata

Microsoft.Azure.Commands.CosmosDB.PSSqlKeyWrapMetadata 형식의 KeyWrapMetaData 개체입니다.

형식:PSSqlKeyWrapMetadata
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

클라이언트 암호화 키 이름입니다.

형식:String
별칭:ClientEncryptionKeyName
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ResourceGroupName

리소스 그룹의 이름입니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-SqlDatabaseObject

Sql Database 개체입니다.

형식:PSSqlDatabaseGetResults
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

Byte[]

PSSqlKeyWrapMetadata

Microsoft.Data.Encryption.Cryptography.EncryptionKeyStoreProvider

PSSqlDatabaseGetResults

PSSqlClientEncryptionKeyGetResults

출력

PSSqlClientEncryptionKeyGetResults

ResourceNotFoundException