Zakresy szyfrowania umożliwiają zarządzanie szyfrowaniem na poziomie pojedynczego obiektu blob lub kontenera. Zakresy szyfrowania umożliwiają tworzenie bezpiecznych granic między danymi, które znajdują się na tym samym koncie magazynu, ale należą do różnych klientów. Aby uzyskać więcej informacji na temat zakresów szyfrowania, zobacz Zakresy szyfrowania dla usługi Blob Storage.
W tym artykule pokazano, jak utworzyć zakres szyfrowania. Pokazano również, jak określić zakres szyfrowania podczas tworzenia obiektu blob lub kontenera.
Tworzenie zakresu szyfrowania
Możesz utworzyć zakres szyfrowania chroniony za pomocą klucza zarządzanego przez firmę Microsoft lub klucza zarządzanego przez klienta przechowywanego w usłudze Azure Key Vault lub w modelu zabezpieczeń sprzętu zarządzanego przez firmę Azure Key Vault (HSM). Aby utworzyć zakres szyfrowania przy użyciu klucza zarządzanego przez klienta, musisz najpierw utworzyć magazyn kluczy lub zarządzany moduł HSM i dodać klucz, którego zamierzasz użyć dla zakresu. Magazyn kluczy lub zarządzany moduł HSM musi mieć włączoną ochronę przeczyszczania i musi znajdować się w tym samym regionie co konto magazynu.
Zakres szyfrowania jest automatycznie włączany podczas jego tworzenia. Po utworzeniu zakresu szyfrowania można określić go podczas tworzenia obiektu blob. Podczas tworzenia kontenera można również określić domyślny zakres szyfrowania, który jest automatycznie stosowany do wszystkich obiektów blob w kontenerze.
Aby utworzyć zakres szyfrowania w Azure Portal, wykonaj następujące kroki:
W witrynie Azure Portal przejdź do swojego konta magazynu.
Wybierz ustawienie Szyfrowanie .
Wybierz kartę Zakresy szyfrowania .
Kliknij przycisk Dodaj , aby dodać nowy zakres szyfrowania.
W okienku Tworzenie zakresu szyfrowania wprowadź nazwę nowego zakresu.
Wybierz żądany typ obsługi klucza szyfrowania— klucze zarządzane przez firmę Microsoft lub klucze zarządzane przez klienta.
Jeśli wybrano klucze zarządzane przez firmę Microsoft, kliknij przycisk Utwórz , aby utworzyć zakres szyfrowania.
W przypadku wybrania kluczy zarządzanych przez klienta wybierz subskrypcję i określ magazyn kluczy lub zarządzany moduł HSM oraz klucz do użycia dla tego zakresu szyfrowania.
Jeśli szyfrowanie infrastruktury jest włączone dla konta magazynu, zostanie ono automatycznie włączone dla nowego zakresu szyfrowania. W przeciwnym razie możesz wybrać, czy włączyć szyfrowanie infrastruktury dla zakresu szyfrowania.
Aby utworzyć zakres szyfrowania za pomocą programu PowerShell, zainstaluj moduł Az.Storage PowerShell w wersji 3.4.0 lub nowszej.
Tworzenie zakresu szyfrowania chronionego przez klucze zarządzane przez firmę Microsoft
Aby utworzyć nowy zakres szyfrowania chroniony przez klucze zarządzane przez firmę Microsoft, wywołaj polecenie New-AzStorageEncryptionScope za pomocą parametru -StorageEncryption .
Jeśli szyfrowanie infrastruktury jest włączone dla konta magazynu, zostanie ono automatycznie włączone dla nowego zakresu szyfrowania. W przeciwnym razie możesz wybrać, czy włączyć szyfrowanie infrastruktury dla zakresu szyfrowania. Aby utworzyć nowy zakres z włączonym szyfrowaniem -RequireInfrastructureEncryption infrastruktury, dołącz parametr .
Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
Tworzenie zakresu szyfrowania chronionego przez klucze zarządzane przez klienta
Aby utworzyć nowy zakres szyfrowania chroniony przez klucze zarządzane przez klienta przechowywane w magazynie kluczy lub zarządzanym module HSM, najpierw skonfiguruj klucze zarządzane przez klienta dla konta magazynu. Musisz przypisać tożsamość zarządzaną do konta magazynu, a następnie użyć tożsamości zarządzanej do skonfigurowania zasad dostępu dla magazynu kluczy lub zarządzanego modułu HSM, aby konto magazynu ma uprawnienia dostępu do niego.
Aby skonfigurować klucze zarządzane przez klienta do użycia z zakresem szyfrowania, należy włączyć ochronę przed przeczyszczeniem w magazynie kluczy lub zarządzanym module HSM. Magazyn kluczy lub zarządzany moduł HSM musi znajdować się w tym samym regionie co konto magazynu.
Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$keyVaultName = "<key-vault>"
$keyUri = "<key-uri>"
$scopeName2 = "customer2scope"
# Assign a system managed identity to the storage account.
$storageAccount = Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-AssignIdentity
# Configure the access policy for the key vault.
Set-AzKeyVaultAccessPolicy `
-VaultName $keyVaultName `
-ObjectId $storageAccount.Identity.PrincipalId `
-PermissionsToKeys wrapkey,unwrapkey,get
Następnie wywołaj polecenie New-AzStorageEncryptionScope za pomocą parametru -KeyvaultEncryption i określ identyfikator URI klucza. Dołączenie wersji klucza do identyfikatora URI klucza jest opcjonalne. Jeśli pominięto wersję klucza, zakres szyfrowania będzie automatycznie używać najnowszej wersji klucza. Jeśli dołączysz wersję klucza, musisz ręcznie zaktualizować wersję klucza, aby użyć innej wersji.
Jeśli szyfrowanie infrastruktury jest włączone dla konta magazynu, zostanie ono automatycznie włączone dla nowego zakresu szyfrowania. W przeciwnym razie możesz wybrać, czy włączyć szyfrowanie infrastruktury dla zakresu szyfrowania. Aby utworzyć nowy zakres z włączonym szyfrowaniem -RequireInfrastructureEncryption infrastruktury, dołącz parametr .
Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
Aby utworzyć zakres szyfrowania za pomocą interfejsu wiersza polecenia platformy Azure, najpierw zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.20.0 lub nowszej.
Tworzenie zakresu szyfrowania chronionego przez klucze zarządzane przez firmę Microsoft
Aby utworzyć nowy zakres szyfrowania chroniony przez klucze zarządzane przez firmę Microsoft, wywołaj polecenie az storage account encryption-scope create , określając --key-source parametr jako Microsoft.Storage.
Jeśli szyfrowanie infrastruktury jest włączone dla konta magazynu, zostanie ono automatycznie włączone dla nowego zakresu szyfrowania. W przeciwnym razie możesz wybrać, czy włączyć szyfrowanie infrastruktury dla zakresu szyfrowania. Aby utworzyć nowy zakres z włączonym szyfrowaniem infrastruktury, dołącz --require-infrastructure-encryption parametr i ustaw jego wartość na true.
Pamiętaj, aby zastąpić wartości symboli zastępczych własnymi wartościami:
Tworzenie zakresu szyfrowania chronionego przez klucze zarządzane przez klienta
Aby utworzyć nowy zakres szyfrowania chroniony przez klucze zarządzane przez klienta w magazynie kluczy lub zarządzanym module HSM, najpierw skonfiguruj klucze zarządzane przez klienta dla konta magazynu. Musisz przypisać tożsamość zarządzaną do konta magazynu, a następnie użyć tożsamości zarządzanej do skonfigurowania zasad dostępu dla magazynu kluczy, aby konto magazynu ma uprawnienia dostępu do niego. Aby uzyskać więcej informacji, zobacz Klucze zarządzane przez klienta na potrzeby szyfrowania usługi Azure Storage.
Aby skonfigurować klucze zarządzane przez klienta do użycia z zakresem szyfrowania, należy włączyć ochronę przed przeczyszczeniem w magazynie kluczy lub zarządzanym module HSM. Magazyn kluczy lub zarządzany moduł HSM musi znajdować się w tym samym regionie co konto magazynu.
Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
az login
az account set --subscription <subscription-id>
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--assign-identity
storage_account_principal=$(az storage account show \
--name <storage-account> \
--resource-group <resource-group> \
--query identity.principalId \
--output tsv)
az keyvault set-policy \
--name <key-vault> \
--resource-group <resource_group> \
--object-id $storage_account_principal \
--key-permissions get unwrapKey wrapKey
Następnie wywołaj polecenie az storage account encryption-scope za pomocą parametru --key-uri i określ identyfikator URI klucza. Dołączenie wersji klucza do identyfikatora URI klucza jest opcjonalne. Jeśli pominięto wersję klucza, zakres szyfrowania będzie automatycznie używać najnowszej wersji klucza. Jeśli dołączysz wersję klucza, musisz ręcznie zaktualizować wersję klucza, aby użyć innej wersji.
Jeśli szyfrowanie infrastruktury jest włączone dla konta magazynu, zostanie ono automatycznie włączone dla nowego zakresu szyfrowania. W przeciwnym razie możesz wybrać, czy włączyć szyfrowanie infrastruktury dla zakresu szyfrowania. Aby utworzyć nowy zakres z włączonym szyfrowaniem infrastruktury, dołącz --require-infrastructure-encryption parametr i ustaw jego wartość na true.
Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
Aby dowiedzieć się, jak skonfigurować szyfrowanie usługi Azure Storage przy użyciu kluczy zarządzanych przez klienta w magazynie kluczy lub zarządzanym module HSM, zobacz następujące artykuły:
Aby wyświetlić zakresy szyfrowania dla konta magazynu w Azure Portal, przejdź do ustawienia Zakresy szyfrowania dla konta magazynu. W tym okienku można włączyć lub wyłączyć zakres szyfrowania lub zmienić klucz dla zakresu szyfrowania.
Aby wyświetlić szczegóły klucza zarządzanego przez klienta, w tym identyfikator URI klucza i wersję oraz czy wersja klucza jest automatycznie aktualizowana, postępuj zgodnie z linkiem w kolumnie Klucz .
Aby wyświetlić listę zakresów szyfrowania dostępnych dla konta magazynu za pomocą programu PowerShell, wywołaj polecenie Get-AzStorageEncryptionScope . Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
Aby wyświetlić listę zakresów szyfrowania dostępnych dla konta magazynu za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage account encryption-scope list . Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
az storage account encryption-scope list \
--account-name <storage-account> \
--resource-group <resource-group>
Tworzenie kontenera z domyślnym zakresem szyfrowania
Podczas tworzenia kontenera można określić domyślny zakres szyfrowania. Obiekty blob w tym kontenerze będą domyślnie używać tego zakresu.
Pojedynczy obiekt blob można utworzyć z własnym zakresem szyfrowania, chyba że kontener jest skonfigurowany tak, aby wymagał, aby wszystkie obiekty blob używały zakresu domyślnego. Aby uzyskać więcej informacji, zobacz Zakresy szyfrowania dla kontenerów i obiektów blob.
Aby utworzyć kontener z domyślnym zakresem szyfrowania w Azure Portal, najpierw utwórz zakres szyfrowania zgodnie z opisem w temacie Tworzenie zakresu szyfrowania. Następnie wykonaj następujące kroki, aby utworzyć kontener:
Przejdź do listy kontenerów na koncie magazynu i wybierz przycisk Dodaj , aby utworzyć nowy kontener.
Rozwiń pozycję Ustawienia zaawansowane w okienku Nowy kontener .
Z listy rozwijanej Zakres szyfrowania wybierz domyślny zakres szyfrowania dla kontenera.
Aby wymagać, aby wszystkie obiekty blob w kontenerze używały domyślnego zakresu szyfrowania, zaznacz pole wyboru Użyj tego zakresu szyfrowania dla wszystkich obiektów blob w kontenerze. Jeśli to pole wyboru jest zaznaczone, pojedynczy obiekt blob w kontenerze nie może zastąpić domyślnego zakresu szyfrowania.
Aby utworzyć kontener z domyślnym zakresem szyfrowania za pomocą programu PowerShell, wywołaj polecenie New-AzStorageContainer , określając zakres parametru -DefaultEncryptionScope . Aby wymusić użycie domyślnego zakresu kontenera dla wszystkich obiektów blob w kontenerze, ustaw -PreventEncryptionScopeOverride parametr na truewartość .
$containerName1 = "container1"
$ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount
# Create a container with a default encryption scope that cannot be overridden.
New-AzStorageContainer -Name $containerName1 `
-Context $ctx `
-DefaultEncryptionScope $scopeName1 `
-PreventEncryptionScopeOverride $true
Aby utworzyć kontener z domyślnym zakresem szyfrowania za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage container create , określając zakres parametru --default-encryption-scope . Aby wymusić użycie domyślnego zakresu kontenera dla wszystkich obiektów blob w kontenerze, ustaw --prevent-encryption-scope-override parametr na truewartość .
Jeśli klient próbuje określić zakres podczas przekazywania obiektu blob do kontenera, który ma domyślny zakres szyfrowania, a kontener jest skonfigurowany tak, aby zapobiec zastępowaniu domyślnego zakresu obiektów blob, operacja kończy się niepowodzeniem z komunikatem wskazującym, że żądanie jest zabronione przez zasady szyfrowania kontenera.
Przekazywanie obiektu blob z zakresem szyfrowania
Podczas przekazywania obiektu blob można określić zakres szyfrowania dla tego obiektu blob lub użyć domyślnego zakresu szyfrowania dla kontenera, jeśli został określony.
Podczas przekazywania nowego obiektu blob z zakresem szyfrowania nie można zmienić domyślnej warstwy dostępu dla tego obiektu blob.
Aby przekazać obiekt blob z zakresem szyfrowania za pośrednictwem Azure Portal, najpierw utwórz zakres szyfrowania zgodnie z opisem w temacie Tworzenie zakresu szyfrowania. Następnie wykonaj następujące kroki, aby utworzyć obiekt blob:
Przejdź do kontenera, do którego chcesz przekazać obiekt blob.
Wybierz przycisk Przekaż i znajdź obiekt blob do przekazania.
Rozwiń pozycję Ustawienia zaawansowane w okienku Przekazywanie obiektu blob .
Znajdź sekcję listy rozwijanej Zakres szyfrowania . Domyślnie obiekt blob jest tworzony z domyślnym zakresem szyfrowania dla kontenera, jeśli został określony. Jeśli kontener wymaga, aby obiekty blob używały domyślnego zakresu szyfrowania, ta sekcja jest wyłączona.
Aby określić inny zakres przekazywanego obiektu blob, wybierz pozycję Wybierz istniejący zakres, a następnie wybierz żądany zakres z listy rozwijanej.
Aby przekazać obiekt blob z zakresem szyfrowania za pośrednictwem programu PowerShell, wywołaj polecenie Set-AzStorageBlobContent i podaj zakres szyfrowania dla obiektu blob.
$containerName2 = "container2"
$localSrcFile = "C:\temp\helloworld.txt"
$ctx = New-AzStorageContext -StorageAccountName $accountName -UseConnectedAccount
# Create a new container with no default scope defined.
New-AzStorageContainer -Name $containerName2 -Context $ctx
# Upload a block upload with an encryption scope specified.
Set-AzStorageBlobContent -Context $ctx `
-Container $containerName2 `
-File $localSrcFile `
-Blob "helloworld.txt" `
-BlobType Block `
-EncryptionScope $scopeName2
Aby przekazać obiekt blob z zakresem szyfrowania za pośrednictwem interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage blob upload i podaj zakres szyfrowania dla obiektu blob.
Jeśli używasz usługi Azure Cloud Shell, wykonaj kroki opisane w temacie Przekazywanie obiektu blob, aby utworzyć plik w katalogu głównym. Następnie możesz przekazać ten plik do obiektu blob przy użyciu poniższego przykładu.
Aby zmienić klucz, który chroni zakres w Azure Portal, wykonaj następujące kroki:
Przejdź do karty Zakresy szyfrowania , aby wyświetlić listę zakresów szyfrowania dla konta magazynu.
Wybierz przycisk Więcej obok zakresu, który chcesz zmodyfikować.
W okienku Edytowanie zakresu szyfrowania można zmienić typ szyfrowania z klucza zarządzanego przez firmę Microsoft na klucz zarządzany przez klienta lub na odwrót.
Aby wybrać nowy klucz zarządzany przez klienta, wybierz pozycję Użyj nowego klucza i określ magazyn kluczy, klucz i wersję klucza.
Aby zmienić klucz, który chroni zakres szyfrowania przed kluczem zarządzanym przez klienta do klucza zarządzanego przez firmę Microsoft za pomocą programu PowerShell, wywołaj polecenie Update-AzStorageEncryptionScope i przekaż -StorageEncryption parametr :
Aby zmienić klucz, który chroni zakres szyfrowania przed kluczem zarządzanym przez klienta do klucza zarządzanego przez firmę Microsoft za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage account encryption-scope update i przekaż --key-source parametr z wartością Microsoft.Storage:
Następnie wywołaj polecenie az storage account encryption-scope update , przekaż parametr i przekaż --key-uri--key-source parametr z wartością Microsoft.KeyVault:
Po wyłączeniu zakresu szyfrowania nie są już naliczane opłaty. Wyłącz wszelkie zakresy szyfrowania, które nie są potrzebne, aby uniknąć niepotrzebnych opłat. Aby uzyskać więcej informacji, zobacz Szyfrowanie usługi Azure Storage dla danych magazynowanych.
Aby wyłączyć zakres szyfrowania w Azure Portal, przejdź do ustawienia Zakresy szyfrowania dla konta magazynu, wybierz żądany zakres szyfrowania, a następnie wybierz pozycję Wyłącz.
Aby wyłączyć zakres szyfrowania za pomocą programu PowerShell, wywołaj polecenie Update-AzStorageEncryptionScope i dołącz -State parametr z wartością disabled, jak pokazano w poniższym przykładzie. Aby ponownie włączyć zakres szyfrowania, wywołaj to samo polecenie z parametrem ustawionym -State na enabled. Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami:
Aby wyłączyć zakres szyfrowania za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage account encryption-scope update i dołącz --state parametr z wartością Disabled, jak pokazano w poniższym przykładzie. Aby ponownie włączyć zakres szyfrowania, wywołaj to samo polecenie z parametrem ustawionym --state na Enabled. Pamiętaj, aby zastąpić wartości symboli zastępczych w przykładzie własnymi wartościami: