Självstudie: Använda en Key Vault-nyckel för att kryptera data till ett Media Services-konto
Varning
Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS Retirement Guide.
Not
Hanterade identiteter är endast tillgängliga för Media Services-konton som skapats med hjälp av v3-API:et. Om du använder v2-API:et och vill använda hanterade identiteter migrerar du från v2 till v3 Migrera från Media Services v2 till v3-introduktion.
Om du vill att Media Services ska kryptera data med hjälp av en nyckel från nyckelvalvet måste Media Services-kontot beviljas åtkomst till Key Vault. Följ stegen nedan för att skapa en hanterad identitet för Media Services-kontot och ge den här identiteten åtkomst till ditt Key Vault med hjälp av Media Services CLI.
I den här självstudien används 2020-05-01 Media Services API.
Logga in på Azure
Om du vill använda något av kommandona i den här artikeln måste du först loggas in på den prenumeration som du vill använda.
Logga in på Azure. När du använder det här kommandot uppmanas du att ange den prenumeration som du vill använda.
az login
Ange prenumeration
Använd det här kommandot för att ange den prenumeration som du vill arbeta med.
Ange Azure-prenumerationen med CLI
I följande kommando anger du det Azure-prenumerations-ID som du vill använda för Media Services-kontot.
az account set --subscription <subscriptionName>
Resursnamn
Innan du börjar ska du bestämma namnen på de resurser som du ska skapa. De bör vara lätta att identifiera som en uppsättning, särskilt om du inte planerar att använda dem när du är klar med testningen. Namngivningsregler skiljer sig åt för många resurstyper, så det är bäst att hålla sig till alla gemener. Till exempel "mediatest1rg" för resursgruppens namn och "mediatest1stor" för ditt lagringskontonamn. Använd samma namn för varje steg i den här artikeln.
Du ser dessa namn som refereras i kommandona nedan. Namnen på de resurser du behöver är:
- myRG
- myStorageAccount
- myAmsAccount
- myKeyVault
- myKey
- plats
Not
Bindestrecken ovan används endast för att avgränsa vägledningsord. På grund av inkonsekvensen i namngivning av resurser i Azure-tjänster ska du inte använda bindestreck när du namnger dina resurser. Dessutom skapar du inte regionnamnet. Regionnamnet bestäms av Azure.
Lista Azure-regioner
Om du inte är säker på vilket regionnamn som ska användas använder du det här kommandot för att hämta en lista:
Använd det här kommandot om du vill visa en lista över de regioner som är tillgängliga för ditt konto.
az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table
Sekvens
Vart och ett av stegen nedan görs i en viss ordning eftersom ett eller flera värden från JSON-svaren används i nästa steg i sekvensen.
Skapa ett lagringskonto
Det Media Services-konto som du skapar måste ha ett lagringskonto kopplat till det. Skapa lagringskontot för Media Services-kontot först. Du använder your-storage-account-name
för efterföljande steg.
Skapa ett Azure Storage-konto med CLI
Använd följande kommandon för att skapa ett Azure Storage-konto.
Om du vill skapa ett lagringskonto måste du först skapa en resursgrupp på en plats.
Använd följande kommando för att visa tillgängliga platser:
Lista tillgängliga platser med CLI
Använd följande kommando för att visa tillgängliga platser:
az account list-locations
Skapa en resursgrupp med CLI
Använd följande kommando för att skapa en resursgrupp:
az group create -n <resourceGroupName> --location chooseLocation
Välj en SKU
Du måste också välja en SKU för ditt lagringskonto. Du kan lista lagringskonton.
Välj en SKU i följande lista: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.
- Ändra
myStorageAccount
till ett unikt namn med en längd på färre än 24 tecken. - Ändra
chooseLocation
till den region som du vill arbeta i. - Ändra
chooseSKU
till önskad SKU.
az storage account create -n <myStorageAccount> -g <resourceGroup> --location <chooseLocation> --sku <chooseSKU>
Skapa ett Media Services-konto med tjänstens huvudnamn (hanterad identitet)
Skapa nu Media Services-kontot med ett tjänsthuvudnamn, även kallat hanterad identitet.
Viktig
Det är viktigt att du kommer ihåg att använda flaggan --mi i kommandot . Annars kan du inte hitta principalId
för ett senare steg.
Följande Azure CLI-kommando skapar ett nytt Media Services-konto. Ersätt följande värden: your-media-services-account-name
your-storage-account-name
och your-resource-group-name
med de namn som du vill använda. Kommandot förutsätter att du redan har skapat en resursgrupp och ett lagringskonto.
Det ger Media Services-kontot en systemtilldelad hanterad identitet med flaggan --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>
Exempel på JSON-svar:
{
"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"
}
Skapa ett Nyckelvalv
Skapa Key Vault. Key Vault används för att kryptera mediedata. Du använder your-keyvault-name
för att skapa din nyckel och för senare steg.
Använd följande kommandon för att skapa ett nyckelvalv och en nyckel. Ändra your-resource-group-name
, your-keyvault-name
och your-key-name
till de värden som du vill använda. Kommandot förutsätter att du redan har skapat en resursgrupp.
Not
Med --bypass AzureServices
kan Media Services (och andra Azure-tjänster) komma åt Key Vault när åtkomsten normalt blockeras av Key Vault-nätverkets ACL:er --enable-purge-protection
Om den inte har angetts kan du inte använda nyckeln.
Skapa Key Vault
az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>
Exempel på JSON-svar:
{
"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"
}
Skapa nyckeln
az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name
Exempel på JSON-svar:
{
"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
}
Ge Media Services System Tilldelad hanterad identitet åtkomst till Key Vault
Ge Media Services hanterad identitet åtkomst till Nyckelvalvet. Det finns två kommandon:
Hämta (visa) den hanterade identiteten för Media Services-kontot
Det första kommandot nedan visar den hanterade identiteten för Media Services-kontot som är den principalId
som anges i JSON som returneras av kommandot.
Det här kommandot visar alla egenskaper för ett Media Services-konto.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Not
Om du har tilldelat åtkomstroller till Media Services-kontot returnerar den här raden "storageAuthentication": "ManagedIdentity"
.
Exempel på JSON-svar:
{
"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"
}
Ange Key Vault-principen
Det andra kommandot ger huvudnamns-ID åtkomst till Key Vault. Ange object-id
till värdet för principalId
som du fick från föregående steg.
Om du vill använda det här kommandot måste du inkludera Media Services-principalId
som object-id
. Om du inte redan har gjort det använder du az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
för att hämta det här ID:t.
az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey
Exempel på JSON-svar:
{
"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"
}
Ange att Media Services ska använda nyckeln från Key Vault
Ange Att Media Services ska använda nyckeln som du har skapat. Värdet för egenskapen key-identifier
kommer från utdata när nyckeln skapades. Det här kommandot kan misslyckas på grund av den tid det tar att sprida ändringar i åtkomstkontroll. Om detta händer kan du försöka igen efter några minuter.
Om du vill använda det här kommandot måste du redan ha skapat ett Key Vault och en nyckel.
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>
Exempel på JSON-svar:
{
"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"
}
Validering
Om du vill kontrollera att kontot är krypterat med hjälp av en kundhanterad nyckel kan du visa egenskaperna för kontokryptering:
Visa kontokryptering med CLI
Mer information om det här kommandot finns i Referens för Media Services CLI.
Egenskapen type
ska visa CustomerKey
och currentKeyIdentifier
ska anges till sökvägen till en nyckel i kundens Nyckelvalv.
Rensa resurser
Om du inte planerar att använda de resurser som du skapade tar du bort resursgruppen.
Ta bort en resursgrupp med CLI
az group delete --name <your-resource-group-name>
Få hjälp och support
Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna ett supportärende via Azure-portalen.