Condividi tramite


Esercitazione: Usare una chiave di Key Vault per crittografare i dati in un account di Servizi multimediali

logo di Servizi multimediali v3


Avvertimento

Servizi multimediali di Azure verrà ritirato il 30 giugno 2024. Per altre informazioni, vedere la Guida al ritiro di AMS .

Nota

Le identità gestite sono disponibili solo per gli account di Servizi multimediali creati usando l'API v3. Se si usa l'API v2 e si vogliono usare le identità gestite, eseguire la migrazione da v2 a v3 Eseguire la migrazione da Servizi multimediali v2 a v3 introduzione.

Se si vuole che Servizi multimediali crittografi i dati usando una chiave dall'insieme di credenziali delle chiavi, all'account di Servizi multimediali deve essere concesso l'accesso all'insieme di credenziali delle chiavi. Seguire questa procedura per creare un'identità gestita per l'account di Servizi multimediali e concedere a questa identità l'accesso all'insieme di credenziali delle chiavi usando l'interfaccia della riga di comando di Servizi multimediali.

account di Servizi multimediali usa Key Vault con un'identità gestita

Questa esercitazione usa l'API servizi multimediali 2020-05-01.

Accedere ad Azure

Per usare uno dei comandi di questo articolo, è necessario prima accedere alla sottoscrizione che si vuole usare.

Accedere ad Azure. Quando si usa questo comando, verrà richiesto di specificare la sottoscrizione da usare.

az login

Impostare la sottoscrizione

Usare questo comando per impostare la sottoscrizione da usare.

Impostare la sottoscrizione di Azure con l'interfaccia della riga di comando

Nel comando seguente specificare l'ID sottoscrizione di Azure che si vuole usare per l'account di Servizi multimediali.

az account set --subscription <subscriptionName>

Nomi delle risorse

Prima di iniziare, decidere i nomi delle risorse che verranno create. Devono essere facilmente identificabili come set, soprattutto se non si prevede di usarli dopo aver completato i test. Le regole di denominazione sono diverse per molti tipi di risorse, quindi è consigliabile attenersi a tutte le lettere minuscole. Ad esempio, "mediatest1rg" per il nome del gruppo di risorse e "mediatest1stor" per il nome dell'account di archiviazione. Usare gli stessi nomi per ogni passaggio di questo articolo.

Questi nomi verranno visualizzati nei comandi seguenti. I nomi delle risorse necessarie sono:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • myKeyVault
  • myKey
  • ubicazione

Nota

I trattini precedenti vengono usati solo per separare le parole guida. A causa dell'incoerenza della denominazione delle risorse nei servizi di Azure, non usare trattini quando si assegnano un nome alle risorse. Inoltre, non si crea il nome dell'area. Il nome dell'area è determinato da Azure.

Elencare le aree di Azure

Se non si è certi del nome effettivo dell'area da usare, usare questo comando per ottenere un elenco:

Usare questo comando per elencare le aree disponibili per l'account.

az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

Sequenza

Ognuno dei passaggi seguenti viene eseguito in un ordine specifico perché uno o più valori delle risposte JSON vengono usati nel passaggio successivo della sequenza.

Creare un account di archiviazione

L'account di Servizi multimediali creato deve avere un account di archiviazione associato. Creare prima l'account di archiviazione per l'account di Servizi multimediali. Si useranno your-storage-account-name per i passaggi successivi.

Creare un account di archiviazione di Azure con l'interfaccia della riga di comando

Usare i comandi seguenti per creare un account di archiviazione di Azure.

Per creare un account di archiviazione, è prima necessario creare un gruppo di risorse all'interno di una posizione.

Per elencare le posizioni disponibili, usare il comando seguente:

Elencare le posizioni disponibili con l'interfaccia della riga di comando

Per elencare le posizioni disponibili, usare il comando seguente:

az account list-locations

Creare un gruppo di risorse con l'interfaccia della riga di comando

Per creare un gruppo di risorse, usare il comando seguente:

az group create -n <resourceGroupName> --location chooseLocation

Scegliere uno SKU

È anche necessario scegliere uno SKU per l'account di archiviazione. È possibile elencare gli account di archiviazione.

Scegliere uno SKU dall'elenco seguente: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS Standard_RAGZRS.

  • Modificare myStorageAccount in un nome univoco con una lunghezza inferiore a 24 caratteri.
  • Modificare chooseLocation nell'area in cui si vuole lavorare.
  • Passare chooseSKU allo SKU preferito.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Creare un account di Servizi multimediali con un'entità servizio (identità gestita)

Creare ora l'account di Servizi multimediali con un'entità servizio, altrimenti nota come identità gestita.

Importante

È importante ricordare di usare il flag --mi nel comando . In caso contrario, non sarà possibile trovare il principalId per un passaggio successivo.

Il comando seguente dell'interfaccia della riga di comando di Azure crea un nuovo account di Servizi multimediali. Sostituire i valori seguenti: your-media-services-account-nameyour-storage-account-namee your-resource-group-name con i nomi da usare. Il comando presuppone che sia già stato creato un gruppo di risorse e un account di archiviazione.

Fornisce all'account servizi multimediali un'identità gestita assegnata dal sistema con il 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>

Risposta JSON di esempio:

{
  "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"
}

Creare un insieme di credenziali delle chiavi

Creare l'insieme di credenziali delle chiavi. Key Vault viene usato per crittografare i dati multimediali. Si userà your-keyvault-name per creare la chiave e per i passaggi successivi.

Usare i comandi seguenti per creare un insieme di credenziali delle chiavi e una chiave. Modificare your-resource-group-name, your-keyvault-name e your-key-name con i valori da usare. Il comando presuppone che sia già stato creato un gruppo di risorse.

Nota

Il --bypass AzureServices consente a Servizi multimediali (e ad altri servizi di Azure) di accedere all'insieme di credenziali delle chiavi quando tale accesso viene normalmente bloccato dagli ACL di rete dell'insieme di credenziali delle chiavi Il --enable-purge-protection Se non è impostato, non sarà possibile usare la chiave.

Creare l'insieme di credenziali delle chiavi


az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>

Risposta JSON di esempio:

{
  "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"
}

Creare la chiave

az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name

Risposta JSON di esempio:


{
  "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
}

Concedere all'identità gestita assegnata dal sistema servizi multimediali l'accesso all'insieme di credenziali delle chiavi

Concedere all'identità gestita di Servizi multimediali l'accesso all'insieme di credenziali delle chiavi. Esistono due comandi:

Ottenere (mostrare) l'identità gestita dell'account di Servizi multimediali

Il primo comando seguente mostra l'identità gestita dell'account di Servizi multimediali, ovvero il principalId elencato nel codice JSON restituito dal comando .

Questo comando mostra tutte le proprietà di un account di Servizi multimediali.

az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>

Nota

Se sono stati assegnati ruoli di accesso all'account di Servizi multimediali, questa riga restituirà "storageAuthentication": "ManagedIdentity".

Risposta JSON di esempio:

{
  "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"
}

Impostare i criteri di Key Vault

Il secondo comando concede all'ID entità l'accesso all'insieme di credenziali delle chiavi. Impostare object-id sul valore di principalId ottenuto dal passaggio precedente.

Per usare questo comando, è necessario includere il principalId di Servizi multimediali come object-id. se non è già stato fatto, usare az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group> per ottenere questo ID.

az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey

Risposta JSON di esempio:

{
  "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"
}

Impostare Servizi multimediali per l'uso della chiave da Key Vault

Impostare Servizi multimediali per usare la chiave creata. Il valore della proprietà key-identifier deriva dall'output al momento della creazione della chiave. Questo comando potrebbe non riuscire a causa del tempo necessario per propagare le modifiche al controllo di accesso. In questo caso, riprovare dopo alcuni minuti.

Per usare questo comando, è necessario aver già creato un insieme di credenziali delle chiavi e una chiave.

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>

Risposta JSON di esempio:

{
  "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"
}

Convalida

Per verificare che l'account sia crittografato usando una chiave gestita dal cliente, visualizzare le proprietà di crittografia dell'account:

Visualizzare la crittografia dell'account con l'interfaccia della riga di comando

Per altre informazioni su questo comando, vedere le informazioni di riferimento sull'interfaccia della riga di comando di Servizi multimediali .

La proprietà type deve mostrare CustomerKey e il currentKeyIdentifier deve essere impostato sul percorso di una chiave nell'insieme di credenziali delle chiavi del cliente.

Pulire le risorse

Se non si prevede di usare le risorse create, eliminare il gruppo di risorse.

Eliminare un gruppo di risorse con l'interfaccia della riga di comando

az group delete --name <your-resource-group-name>

Ottenere assistenza e supporto tecnico

È possibile contattare Servizi multimediali con domande o seguire gli aggiornamenti in uno dei metodi seguenti: