Sdílet prostřednictvím


Kurz: Použití klíče služby Key Vault k šifrování dat do účtu Media Services

logo Media Services v3


Varování

Služba Azure Media Services bude vyřazena 30. června 2024. Další informace naleznete v AMS Retirement Guide.

Poznámka

Spravované identity jsou dostupné jenom pro účty Media Services vytvořené pomocí rozhraní API v3. Pokud používáte rozhraní API v2 a chcete používat spravované identity, proveďte migraci z verze 2 na verzi 3 Migrace ze služby Media Services v2 do verze 3 úvodu.

Pokud chcete, aby služba Media Services šifruje data pomocí klíče ze služby Key Vault, musí být účet Media Services udělen přístup ke službě Key Vault. Pomocí následujícího postupu vytvořte spravovanou identitu pro účet Media Services a udělte této identitě přístup ke službě Key Vault pomocí rozhraní příkazového řádku služby Media Services.

účet Media Services používá key Vault se spravovanou identitou

V tomto kurzu se používá rozhraní API Media Services z 5. 5. 2020.

Přihlášení k Azure

Pokud chcete použít některý z příkazů v tomto článku, musíte být nejdřív přihlášeni k předplatnému, které chcete použít.

Přihlaste se k Azure. Když použijete tento příkaz, zobrazí se výzva k zadání předplatného, které chcete použít.

az login

Nastavení předplatného

Pomocí tohoto příkazu nastavte předplatné, se kterým chcete pracovat.

Nastavení předplatného Azure pomocí rozhraní příkazového řádku

V následujícím příkazu zadejte ID předplatného Azure, které chcete použít pro účet Media Services.

az account set --subscription <subscriptionName>

Názvy prostředků

Než začnete, rozhodněte se o názvech prostředků, které vytvoříte. Měly by být snadno identifikovatelné jako sada, zejména pokud je neplánujete používat po dokončení testování. Pravidla pojmenování se liší pro mnoho typů prostředků, takže je nejlepší držet se všech malých písmen. Například "mediatest1rg" pro název vaší skupiny prostředků a "mediatest1stor" pro název účtu úložiště. Pro každý krok v tomto článku použijte stejné názvy.

Na tyto názvy se odkazuje v následujících příkazech. Názvy prostředků, které budete potřebovat, jsou:

  • myRG
  • myStorageAccount
  • myAmsAccount
  • myKeyVault
  • myKey
  • umístění

Poznámka

Výše uvedené spojovníky slouží pouze k oddělení doprovodných slov. Vzhledem k nekonzistence pojmenování prostředků ve službách Azure nepoužívejte pomlčky při pojmenování prostředků. Název oblasti také nevytvoříte. Název oblasti je určen Azure.

Výpis oblastí Azure

Pokud si nejste jistí skutečným názvem oblasti, který chcete použít, použijte tento příkaz k získání výpisu:

Pomocí tohoto příkazu zobrazíte seznam oblastí dostupných pro váš účet.

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

Posloupnost

Každý z níže uvedených kroků se provádí v určitém pořadí, protože jedna nebo více hodnot z odpovědí JSON se používá v dalším kroku v posloupnosti.

Vytvoření účtu úložiště

Účet Media Services, který vytvoříte, musí mít přidružený účet úložiště. Nejprve vytvořte účet úložiště pro účet Media Services. K dalším krokům použijete your-storage-account-name.

Vytvoření účtu Azure Storage pomocí rozhraní příkazového řádku

K vytvoření účtu Azure Storage použijte následující příkazy.

Pokud chcete vytvořit účet úložiště, musíte nejprve vytvořit skupinu prostředků v rámci umístění.

Pokud chcete zobrazit seznam dostupných umístění, použijte následující příkaz:

Výpis dostupných umístění pomocí rozhraní příkazového řádku

Pokud chcete zobrazit seznam dostupných umístění, použijte následující příkaz:

az account list-locations

Vytvoření skupiny prostředků pomocí rozhraní příkazového řádku

K vytvoření skupiny prostředků použijte následující příkaz:

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

Volba skladové položky

Musíte také zvolit skladovou položku pro svůj účet úložiště. Můžete zobrazit seznam účtů úložiště.

V následujícím seznamu vyberte skladovou položku: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.

  • Změňte myStorageAccount na jedinečný název s délkou menší než 24 znaků.
  • Změňte chooseLocation na oblast, ve které chcete pracovat.
  • Změňte chooseSKU na upřednostňovanou skladovou položku.
az storage account create -n <myStorageAccount> -g <resourceGroup>  --location <chooseLocation> --sku <chooseSKU>

Vytvoření účtu Media Services s instančním objektem (spravovaná identita)

Teď vytvořte účet Media Services pomocí instančního objektu, jinak označovaného jako spravovaná identita.

Důležitý

Je důležité, abyste v příkazu použili příznak --mi. Jinak nebudete moct najít principalId pro pozdější krok.

Následující příkaz Azure CLI vytvoří nový účet Media Services. Nahraďte následující hodnoty: your-media-services-account-nameyour-storage-account-namea your-resource-group-name názvy, které chcete použít. Příkaz předpokládá, že jste už vytvořili skupinu prostředků a účet úložiště.

Poskytuje účtu Media Services spravovanou identitu přiřazenou systémem s příznakem --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>

Příklad odpovědi 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"
}

Vytvoření služby Key Vault

Vytvořte službu Key Vault. Key Vault se používá k šifrování mediálních dat. K vytvoření klíče a pozdějších kroků použijete your-keyvault-name.

K vytvoření služby Key Vault a klíče použijte následující příkazy. Změňte your-resource-group-name, your-keyvault-name a your-key-name na hodnoty, které chcete použít. Příkaz předpokládá, že jste už vytvořili skupinu prostředků.

Poznámka

--bypass AzureServices umožňuje službě Media Services (a dalším službám Azure) přistupovat ke službě Key Vault, pokud by tento přístup normálně blokoval seznamy ACL sítě služby Key Vault, --enable-purge-protection Pokud není nastavená, nebudete moct klíč používat.

Vytvoření služby Key Vault


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

Příklad odpovědi 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"
}

Vytvoření klíče

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

Příklad odpovědi 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
}

Udělení přístupu spravované identity přiřazené systémem Media Services ke službě Key Vault

Udělte spravované identitě Media Services přístup ke službě Key Vault. Existují dva příkazy:

Získání (zobrazení) spravované identity účtu Media Services

První příkaz níže zobrazuje spravovanou identitu účtu Media Services, což je principalId uvedené v kódu JSON vráceného příkazem.

Tento příkaz zobrazí všechny vlastnosti účtu Media Services.

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

Poznámka

Pokud jste účtu Media Services přiřadili přístupové role, vrátí tento řádek "storageAuthentication": "ManagedIdentity".

Příklad odpovědi 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"
}

Nastavení zásad služby Key Vault

Druhý příkaz udělí instančnímu ID přístup ke službě Key Vault. Nastavte object-id na hodnotu principalId, kterou jste získali z předchozího kroku.

Chcete-li použít tento příkaz, musíte zahrnout media Services principalId jako object-id. pokud jste to ještě neudělali, použijte az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group> k získání tohoto ID.

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

Příklad odpovědi 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"
}

Nastavení služby Media Services pro použití klíče ze služby Key Vault

Nastavte Media Services tak, aby používal klíč, který jste vytvořili. Hodnota vlastnosti key-identifier pochází z výstupu při vytvoření klíče. Tento příkaz může selhat kvůli době, která trvá rozšíření změn řízení přístupu. Pokud k tomu dojde, zkuste to znovu za několik minut.

Pokud chcete tento příkaz použít, musíte už mít vytvořenou službu Key Vault a klíč.

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>

Příklad odpovědi 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"
}

Validace

Pokud chcete ověřit, že je účet šifrovaný pomocí klíče spravovaného zákazníkem, zobrazte vlastnosti šifrování účtu:

Zobrazení šifrování účtu pomocí rozhraní příkazového řádku

Další informace o tomto příkazu najdete v referenčních informacích k rozhraní příkazového řádku služby Media Services .

Vlastnost type by měla zobrazovat CustomerKey a currentKeyIdentifier by měla být nastavená na cestu ke klíči ve službě Key Vault zákazníka.

Vyčištění prostředků

Pokud neplánujete používat vytvořené prostředky, odstraňte skupinu prostředků.

Odstranění skupiny prostředků pomocí rozhraní příkazového řádku

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

Získání nápovědy a podpory

Službu Media Services můžete kontaktovat s otázkami nebo postupovat podle našich aktualizací jedním z následujících způsobů:

  • Q & A
  • Stack Overflow . Označte otázky pomocí azure-media-services.
  • @MSFTAzureMedia nebo pomocí @AzureSupport požádat o podporu.
  • Otevřete lístek podpory prostřednictvím webu Azure Portal.