Samouczek: szyfrowanie danych na koncie usługi Media Services przy użyciu klucza usługi Key Vault
logo usługi
Ostrzeżenie
Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz przewodnik po wycofaniu usługi AMS.
Nuta
Tożsamości zarządzane są dostępne tylko dla kont usługi Media Services utworzonych przy użyciu interfejsu API w wersji 3. Jeśli używasz interfejsu API w wersji 2 i chcesz używać tożsamości zarządzanych, przeprowadź migrację z wersji 2 do wersji 3 Migrate from Media Services v2 to v3 introduction.
Jeśli chcesz, aby usługa Media Services szyfrować dane przy użyciu klucza z usługi Key Vault, konto usługi Media Services musi mieć przyznane dostępu do usługi Key Vault. Wykonaj poniższe kroki, aby utworzyć tożsamość zarządzaną dla konta usługi Media Services i udzielić tej tożsamości dostępu do usługi Key Vault przy użyciu interfejsu wiersza polecenia usługi Media Services.
konto usługi tożsamości zarządzanej
W tym samouczku jest używany interfejs API usługi Media Services 2020-05-01.
Zaloguj się na platformie Azure
Aby użyć dowolnego polecenia w tym artykule, musisz najpierw zalogować się do subskrypcji, której chcesz użyć.
Zaloguj się do platformy Azure. Gdy używasz tego polecenia, zostanie wyświetlony monit o subskrypcję, której chcesz użyć.
az login
Ustawianie subskrypcji
Użyj tego polecenia, aby ustawić subskrypcję, z którą chcesz pracować.
Ustawianie subskrypcji platformy Azure przy użyciu interfejsu wiersza polecenia
W poniższym poleceniu podaj identyfikator subskrypcji platformy Azure, którego chcesz użyć dla konta usługi Media Services.
az account set --subscription <subscriptionName>
Nazwy zasobów
Przed rozpoczęciem zdecyduj o nazwach zasobów, które utworzysz. Powinny one być łatwe do zidentyfikowania jako zestaw, zwłaszcza jeśli nie planujesz ich używać po zakończeniu testowania. Reguły nazewnictwa różnią się w przypadku wielu typów zasobów, więc najlepiej trzymać się wszystkich małych liter. Na przykład "mediatest1rg" dla nazwy grupy zasobów i "mediatest1stor" dla nazwy konta magazynu. Użyj tych samych nazw dla każdego kroku w tym artykule.
Te nazwy zostaną wyświetlone w poniższych poleceniach. Nazwy potrzebnych zasobów to:
- myRG
- myStorageAccount
- myAmsAccount
- myKeyVault
- myKey
- lokalizacja
Nuta
Powyższe łączniki są używane tylko do oddzielania wyrazów wskazówek. Ze względu na niespójność nazw zasobów w usługach platformy Azure nie używaj łączników podczas nadawania nazw zasobom. Ponadto nazwa regionu nie jest tworzona. Nazwa regionu jest określana przez platformę Azure.
Wyświetlanie listy regionów platformy Azure
Jeśli nie masz pewności co do rzeczywistej nazwy regionu do użycia, użyj tego polecenia, aby uzyskać listę:
Użyj tego polecenia, aby wyświetlić listę regionów dostępnych dla twojego konta.
az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table
Kolejność
Każdy z poniższych kroków jest wykonywany w określonej kolejności, ponieważ co najmniej jedna wartość odpowiedzi JSON jest używana w następnym kroku w sekwencji.
Tworzenie konta magazynu
Utworzone konto usługi Media Services musi mieć skojarzone z nim konto magazynu. Najpierw utwórz konto magazynu dla konta usługi Media Services. Do kolejnych kroków użyjesz your-storage-account-name
.
Tworzenie konta usługi Azure Storage przy użyciu interfejsu wiersza polecenia
Użyj następujących poleceń, aby utworzyć konto usługi Azure Storage.
Aby utworzyć konto magazynu, należy najpierw utworzyć grupę zasobów w lokalizacji.
Aby wyświetlić listę dostępnych lokalizacji, użyj następującego polecenia:
Wyświetlanie listy dostępnych lokalizacji za pomocą interfejsu wiersza polecenia
Aby wyświetlić listę dostępnych lokalizacji, użyj następującego polecenia:
az account list-locations
Tworzenie grupy zasobów przy użyciu interfejsu wiersza polecenia
Aby utworzyć grupę zasobów, użyj następującego polecenia:
az group create -n <resourceGroupName> --location chooseLocation
Wybieranie jednostki SKU
Musisz również wybrać jednostkę SKU dla konta magazynu. Możesz wyświetlić listę kont magazynu.
Wybierz jednostkę SKU z następującej listy: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.
- Zmień
myStorageAccount
na unikatową nazwę o długości mniejszej niż 24 znaki. - Zmień
chooseLocation
na region, w którym chcesz pracować. - Zmień
chooseSKU
na preferowaną jednostkę SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup> --location <chooseLocation> --sku <chooseSKU>
Tworzenie konta usługi Media Services przy użyciu jednostki usługi (tożsamości zarządzanej)
Teraz utwórz konto usługi Media Services przy użyciu jednostki usługi, nazywanej inaczej tożsamością zarządzaną.
Ważny
Należy pamiętać o użyciu flagi --mi w poleceniu . W przeciwnym razie nie będzie można odnaleźć principalId
dla późniejszego kroku.
Następujące polecenie interfejsu wiersza polecenia platformy Azure tworzy nowe konto usługi Media Services. Zastąp następujące wartości: your-media-services-account-name
your-storage-account-name
i your-resource-group-name
nazwami, których chcesz użyć. W poleceniu założono, że utworzono już grupę zasobów i konto magazynu.
Zapewnia konto usługi Media Services tożsamość zarządzaną przypisaną przez system z flagą --mi-system-assigned
.
az ams account create --name <your-media-services-account-name> --resource-group <your-resource-group-name> --mi-system-assigned --storage-account <your-storage-account-name>
Przykładowa odpowiedź JSON:
{
"encryption": {
"keyVaultProperties": null,
"type": "SystemKey"
},
"id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/your-resource-group/providers/Microsoft.Media/mediaservices/your-media-services-account-name",
"identity": {
"principalId": "00000000-0000-0000-0000-00000000",
"tenantId": "00000000-0000-0000-0000-00000000",
"type": "SystemAssigned"
},
"location": "your-region",
"mediaServiceId": "00000000-0000-0000-0000-00000000",
"name": "your-media-services-account-name",
"resourceGroup": "your-resource-group",
"storageAccounts": [
{
"id": "/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/mediatest1rg/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
"resourceGroup": "your-resource-group",
"type": "Primary"
}
],
"storageAuthentication": "System",
"systemData": {
"createdAt": "2021-05-14T21:25:12.3492071Z",
"createdBy": "you@example.com",
"createdByType": "User",
"lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
"lastModifiedBy": "you@example.com",
"lastModifiedByType": "User"
},
"tags": null,
"type": "Microsoft.Media/mediaservices"
}
Tworzenie usługi Key Vault
Utwórz usługę Key Vault. Usługa Key Vault służy do szyfrowania danych multimedialnych. Użyjesz your-keyvault-name
, aby utworzyć klucz i wykonać późniejsze kroki.
Użyj następujących poleceń, aby utworzyć usługę Key Vault i klucz. Zmień your-resource-group-name
, your-keyvault-name
i your-key-name
na wartości, których chcesz użyć. W poleceniu założono, że grupa zasobów została już utworzona.
Nuta
--bypass AzureServices
umożliwia usłudze Media Services (i innym usługom platformy Azure) dostęp do usługi Key Vault, gdy ten dostęp będzie normalnie blokowany przez listy ACL sieci usługi Key Vault --enable-purge-protection
Jeśli nie został ustawiony, nie będzie można użyć klucza.
Tworzenie usługi Key Vault
az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>
Przykładowa odpowiedź JSON:
{
"id": "/subscriptions/the-subscription-id/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Tworzenie klucza
az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name
Przykładowa odpowiedź JSON:
{
"attributes": {
"created": "2021-05-12T22:41:29+00:00",
"enabled": true,
"expires": null,
"notBefore": null,
"recoveryLevel": "Recoverable",
"updated": "2021-05-12T22:41:29+00:00"
},
"key": {
"crv": null,
"d": null,
"dp": null,
"dq": null,
"e": "AQAB",
"k": null,
"keyOps": [
"encrypt",
"decrypt",
"sign",
"verify",
"wrapKey",
"unwrapKey"
],
"kid": "https://your-keyvault-name.vault.azure.net/keys/your-key-name/your-subsription-id",
"kty": "RSA",
"n": "THISISTHEKEY51V9thvU7KsBUo/q1mEOcuxqt0qUcnx0IRO9YCL32fPjD/nnS8hKS5qkgUKfe2NRAtzVQ+elQAha65l7OsHu+TXmH/n/RPCgstpqSdCfiUR1JTmFYFRWdxCPwoKJMYaqlCEhn2Dkon3StTN0Id0sjRSA/YOLjgWU7YnVbntg5/048HgcTKn3PCWCuJc+P8hI/8Os5EAIpun62PffYwPX0/NIA1PY8wIB+sYEY0zxVGwWrCu7VgCo9xeqbMQEq5OenYmYpc+cjLozU/ohGhfWTpQU8d7fFypTHQraENDOFKEY",
"p": null,
"q": null,
"qi": null,
"t": null,
"x": null,
"y": null
},
"managed": null,
"tags": null
}
Udzielanie tożsamości zarządzanej przypisanej przez system usługi Media Services do usługi Key Vault
Udziel tożsamości zarządzanej usługi Media Services dostępu do usługi Key Vault. Istnieją dwa polecenia:
Pobieranie (pokazywanie) tożsamości zarządzanej konta usługi Media Services
Pierwsze polecenie poniżej przedstawia tożsamość zarządzaną konta usługi Media Services, które jest principalId
wymienione w kodzie JSON zwróconym przez polecenie .
To polecenie pokazuje wszystkie właściwości konta usługi Media Services.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Nuta
Jeśli przypisano role dostępu do konta usługi Media Services, ten wiersz zwróci "storageAuthentication": "ManagedIdentity"
.
Przykładowa odpowiedź JSON:
{
"encryption": {
"keyVaultProperties": null,
"type": "SystemKey"
},
"id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
"identity": {
"principalId": "ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned" //Type will show "Managed Identity" if you have assigned a role to the Media Services account.
},
"location": "your-region",
"mediaServiceId": "00000000-0000-0000-0000-000000000000",
"name": "your-media-services-account",
"resourceGroup": "your-resource-group-name",
"storageAccounts": [
{
"id": "/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/your-resource-group-name/providers/Microsoft.Storage/storageAccounts/your-storage-account-name",
"resourceGroup": "your-resource-group-name",
"type": "Primary"
}
],
"storageAuthentication": "System", //If you have assigned access roles to the account, this line will return storageAuthentication": "ManagedIdentity"
"systemData": {
"createdAt": "2021-05-14T21:25:12.3492071Z",
"createdBy": "you@example.com",
"createdByType": "User",
"lastModifiedAt": "2021-05-14T21:25:12.3492071Z",
"lastModifiedBy": "you@example.com",
"lastModifiedByType": "User"
},
"tags": null,
"type": "Microsoft.Media/mediaservices"
}
Ustawianie zasad usługi Key Vault
Drugie polecenie przyznaje identyfikatorowi podmiotu zabezpieczeń dostęp do usługi Key Vault. Ustaw object-id
wartość principalId
uzyskaną z poprzedniego kroku.
Aby użyć tego polecenia, należy dołączyć principalId
usługi Media Services jako object-id
. Jeśli jeszcze tego nie zrobiono, użyj az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
, aby uzyskać ten identyfikator.
az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey
Przykładowa odpowiedź JSON:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "00000000-0000-0000-000000000000"
},
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "00000000-0000-0000-000000000000"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "00000000-0000-0000-000000000000",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Ustawianie usługi Media Services do używania klucza z usługi Key Vault
Ustaw usługę Media Services, aby użyć utworzonego klucza. Wartość właściwości key-identifier
pochodzi z danych wyjściowych podczas tworzenia klucza. To polecenie może zakończyć się niepowodzeniem ze względu na czas propagowania zmian kontroli dostępu. Jeśli tak się stanie, spróbuj ponownie po kilku minutach.
Aby użyć tego polecenia, musisz już utworzyć usługę Key Vault i klucz.
az ams account encryption set --account-name <your-media-services-account-name> --resource-group <your-resource-group> --key-type CustomerKey --key-identifier https://<your-keyvault-name>.vault.azure.net/keys/<your-key-name>
Przykładowa odpowiedź JSON:
{
"id": "/subscriptions/00000000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.KeyVault/vaults/your-keyvault-name",
"location": "your-region",
"name": "your-keyvault-name",
"properties": {
"accessPolicies": [
{
"applicationId": null,
"objectId": "00000000-0000-0000-000000000000",
"permissions": {
"certificates": [
"get",
"list",
"delete",
"create",
"import",
"update",
"managecontacts",
"getissuers",
"listissuers",
"setissuers",
"deleteissuers",
"manageissuers",
"recover"
],
"keys": [
"get",
"create",
"delete",
"list",
"update",
"import",
"backup",
"restore",
"recover"
],
"secrets": [
"get",
"list",
"set",
"delete",
"backup",
"restore",
"recover"
],
"storage": [
"get",
"list",
"delete",
"set",
"update",
"regeneratekey",
"setsas",
"listsas",
"getsas",
"deletesas"
]
},
"tenantId": "the-tenant-id"
},
{
"applicationId": null,
"objectId": "the-media-services-account-id",
"permissions": {
"certificates": null,
"keys": [
"encrypt",
"get",
"list",
"wrapKey",
"decrypt",
"unwrapKey"
],
"secrets": null,
"storage": null
},
"tenantId": "the-tenant-id"
}
],
"createMode": null,
"enablePurgeProtection": true,
"enableRbacAuthorization": null,
"enableSoftDelete": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": null,
"enabledForTemplateDeployment": null,
"networkAcls": null,
"privateEndpointConnections": null,
"provisioningState": "Succeeded",
"sku": {
"name": "standard"
},
"softDeleteRetentionInDays": 90,
"tenantId": "the-tenant-id",
"vaultUri": "https://your-keyvault-name.vault.azure.net/"
},
"resourceGroup": "your-resource-group-name",
"tags": {},
"type": "Microsoft.KeyVault/vaults"
}
Walidacja
Aby sprawdzić, czy konto jest szyfrowane przy użyciu klucza zarządzanego przez klienta, wyświetl właściwości szyfrowania konta:
Pokaż szyfrowanie konta za pomocą interfejsu wiersza polecenia
Aby uzyskać więcej informacji na temat tego polecenia, zobacz dokumentację interfejsu wiersza polecenia usługi Media Services .
Właściwość type
powinna zawierać CustomerKey
, a currentKeyIdentifier
powinna być ustawiona na ścieżkę klucza w usłudze Key Vault klienta.
Czyszczenie zasobów
Jeśli nie planujesz używania utworzonych zasobów, usuń grupę zasobów.
Usuwanie grupy zasobów przy użyciu interfejsu wiersza polecenia
az group delete --name <your-resource-group-name>
Uzyskiwanie pomocy i obsługi technicznej
Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami, korzystając z jednej z następujących metod:
- Q & A
-
Stack Overflow. Tagowanie pytań przy użyciu
azure-media-services
. - @MSFTAzureMedia lub użyj @AzureSupport, aby poprosić o pomoc techniczną.
- Otwórz bilet pomocy technicznej za pośrednictwem witryny Azure Portal.