Kurz: Šifrování dat v účtu Media Services pomocí Key Vault klíče

Logo Media Services v3


Upozornění

Služba Azure Media Services bude vyřazena 30. června 2024. Další informace najdete v průvodci vyřazením AMS.

Poznámka

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

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

Účet služby Media Services používá Key Vault se spravovanou identitou

V tomto kurzu se používá rozhraní API media services z 2020-05-01.

Přihlášení k Azure

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

Přihlaste se k Azure. Při použití tohoto příkazu se zobrazí výzva k zadání předplatného, které chcete použít.

az login

Nastavení předplatného

Tento příkaz slouží k nastavení předplatného, se kterým chcete pracovat.

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

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

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 po dokončení testování neplánujete používat. Pravidla pojmenování se u mnoha typů prostředků liší, 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
  • location

Poznámka

Výše uvedené spojovníky se používají pouze k oddělení vodicích slov. Kvůli nekonzistenci pojmenování prostředků ve službách Azure nepoužívejte při pojmenování prostředků spojovníky. Také nevytvoříte název oblasti. Název oblasti určuje 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

Sequence

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

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. Použijete your-storage-account-name pro další kroky.

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

Pomocí následujících příkazů vytvořte účet služby Azure Storage.

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

Skupinu prostředků vytvoříte spuštěním následujícího příkazu:

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

Volba skladové jednotky (SKU)

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

Vyberte skladovou položku z následujícího seznamu: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS Standard_RAGZRS.

  • Změňte myStorageAccount na jedinečný název o délce kratší než 24 znaků.
  • Přejděte chooseLocation na oblast, ve které chcete pracovat.
  • Přejdě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 s instančním objektem, který se označuje také jako spravovaná identita.

Důležité

Je důležité, abyste si v příkazu nezapomněli použít příznak --mi. V opačném případě nebudete moct najít principalId možnost 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ě.

Účet Media Services získá 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í trezoru klíčů

Vytvořte Key Vault. Key Vault slouží k šifrování dat médií. Použijete k your-keyvault-name vytvoření klíče a k pozdějším krokům.

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

Poznámka

Umožňuje --bypass AzureServices službě Media Services (a dalším službám Azure) přístup k Key Vault, pokud by tento přístup normálně zablokoval Key Vault síťových seznamů ACL. --enable-purge-protection Pokud není nastavený, nebudete moct klíč použít.

Vytvoření 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": "00000000-0000-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"
      }
    ],
    "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ělte spravované identitě přiřazené systémem služby Media Services přístup k Key Vault

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

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

První příkaz níže zobrazí spravovanou identitu účtu Media Services, která je principalId uvedená ve formátu 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í "storageAuthentication": "ManagedIdentity"tento řádek .

Příklad odpovědi JSON:

{
  "encryption": {
    "keyVaultProperties": null,
    "type": "SystemKey"
  },
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/your-resource-group-name/providers/Microsoft.Media/mediaservices/your-media-services-account",
  "identity": {
    "principalId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "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/00000000-0000-0000-0000-000000000000/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 Key Vault

Druhý příkaz udělí ID objektu zabezpečení přístup k Key Vault. Nastavte object-id na hodnotu principalId , kterou jste získali z předchozího kroku.

Chcete-li použít tento příkaz, je nutné 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 tak, aby používala klíč z Key Vault

Nastavte Službu Media Services tak, aby používala klíč, který jste vytvořili. Hodnota key-identifier vlastnosti pochází z výstupu při vytvoření klíče. Tento příkaz může selhat kvůli času, který trvá šíř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 mít vytvořený 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"
}

Ověřování

Pokud chcete ověřit, že je účet šifrovaný pomocí klíče spravovaného zákazníkem, podívejte se na 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 se měla zobrazit CustomerKey a currentKeyIdentifier měla by být nastavená na cestu klíče v Key Vault zákazníka.

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

Pokud vytvořené prostředky neplánujete používat, 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 dotazy nebo můžete sledovat naše aktualizace jedním z následujících způsobů: