Öğretici: Verileri Media Services hesabında şifrelemek için Key Vault anahtarı kullanma
Uyarı
Azure Media Services 30 Haziran 2024'de kullanımdan kaldırılacaktır. Daha fazla bilgi için bkz. AMS Kullanımdan Kaldırma Kılavuzu.
Not
Yönetilen kimlikler yalnızca v3 API'sini kullanarak oluşturulan Media Services hesapları için kullanılabilir. v2 API'sini kullanıyorsanız ve yönetilen kimlikleri kullanmak istiyorsanız, lütfen v2'den v3'e geçiş yapın Media Services v2'den v3'e geçiş giriş.
Media Services'ın Key Vault'unuzdan bir anahtar kullanarak verileri şifrelemesini istiyorsanız Media Services hesabına Key Vault'a
ile Key Vault kullanır
Bu öğreticide 2020-05-01 Media Services API'sini kullanır.
Azure'da oturum açma
Bu makaledeki komutlardan herhangi birini kullanmak için önce kullanmak istediğiniz abonelikte oturum açmanız gerekir.
Azure'da oturum açın. Bu komutu kullandığınızda, kullanmak istediğiniz abonelik istenir.
az login
Aboneliği ayarlama
Çalışmak istediğiniz aboneliği ayarlamak için bu komutu kullanın.
CLI ile Azure aboneliğini ayarlama
Aşağıdaki komutta, Media Services hesabı için kullanmak istediğiniz Azure abonelik kimliğini belirtin.
az account set --subscription <subscriptionName>
Kaynak adları
Başlamadan önce, oluşturacağınız kaynakların adlarına karar verin. Özellikle testi tamamladıktan sonra kullanmayı planlamıyorsanız, küme olarak kolayca tanımlanabilir olmalıdır. Adlandırma kuralları birçok kaynak türü için farklıdır, bu nedenle tüm küçük harflerle devam etmek en iyisidir. Örneğin, kaynak grubu adınız için "mediatest1rg" ve depolama hesabı adınız için "mediatest1stor". Bu makaledeki her adım için aynı adları kullanın.
Aşağıdaki komutlarda bu adların başvuruldiğini göreceksiniz. İhtiyacınız olacak kaynakların adları şunlardır:
- myRG
- myStorageAccount
- myAmsAccount
- myKeyVault
- myKey
- yer
Not
Yukarıdaki kısa çizgiler yalnızca kılavuz sözcükleri ayırmak için kullanılır. Azure hizmetlerindeki kaynakları adlandırma tutarsızlığı nedeniyle, kaynaklarınızı adlandırırken kısa çizgi kullanmayın. Ayrıca bölge adını da oluşturmazsınız. Bölge adı Azure tarafından belirlenir.
Azure bölgelerini listeleme
Kullanılacak gerçek bölge adından emin değilseniz, bir liste almak için şu komutu kullanın:
Hesabınız için kullanılabilir bölgeleri listelemek için bu komutu kullanın.
az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table
Sıra
Aşağıdaki adımların her biri belirli bir sırada yapılır çünkü JSON yanıtlarındaki bir veya daha fazla değer dizinin sonraki adımında kullanılır.
Depolama hesabı oluşturma
Oluşturacağınız Media Services hesabının kendisiyle ilişkilendirilmiş bir depolama hesabı olmalıdır. Önce Media Services hesabı için depolama hesabını oluşturun. Sonraki adımlar için your-storage-account-name
kullanacaksınız.
CLI ile Azure Depolama hesabı oluşturma
Azure Depolama hesabı oluşturmak için aşağıdaki komutları kullanın.
Depolama hesabı oluşturmak için önce bir konumda bir kaynak grubu oluşturmanız gerekir.
Kullanılabilir konumları listelemek için aşağıdaki komutu kullanın:
CLI ile kullanılabilir konumları listeleme
Kullanılabilir konumları listelemek için aşağıdaki komutu kullanın:
az account list-locations
CLI ile kaynak grubu oluşturma
Kaynak grubu oluşturmak için aşağıdaki komutu kullanın:
az group create -n <resourceGroupName> --location chooseLocation
SKU seçme
Depolama hesabınız için bir SKU seçmeniz de gerekir. Depolama hesaplarını listeleyebilirsiniz.
Aşağıdaki listeden bir SKU seçin: Standard_LRS, Standard_GRS, Standard_RAGRS, Standard_ZRS, Premium_LRS, Premium_ZRS, Standard_GZRS, Standard_RAGZRS.
-
myStorageAccount
, uzunluğu 24 karakterden az olan benzersiz bir adla değiştirin. -
chooseLocation
içinde çalışmak istediğiniz bölgeyle değiştirin. -
chooseSKU
tercih ettiğiniz SKU ile değiştirin.
az storage account create -n <myStorageAccount> -g <resourceGroup> --location <chooseLocation> --sku <chooseSKU>
Hizmet Sorumlusu (Yönetilen Kimlik) ile Media Services hesabı oluşturma
Şimdi Media Services hesabını bir Hizmet Sorumlusuyla oluşturun; aksi takdirde Yönetilen Kimlik olarak da bilinir.
Önemli
Komutunda --mi bayrağını kullanmayı unutmamanız önemlidir. Aksi takdirde, sonraki bir adım için principalId
bulamazsınız.
Aşağıdaki Azure CLI komutu yeni bir Media Services hesabı oluşturur. Aşağıdaki değerleri değiştirin: your-media-services-account-name
your-storage-account-name
ve your-resource-group-name
kullanmak istediğiniz adlarla değiştirin. komutu, zaten bir kaynak grubu ve depolama hesabı oluşturduğunuzu varsayar.
Media Services hesabına --mi-system-assigned
bayrağıyla sistem tarafından atanan bir yönetilen kimlik verir.
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>
Örnek JSON yanıtı:
{
"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"
}
Key Vault oluşturma
Key Vault'u oluşturun. Key Vault, medya verilerini şifrelemek için kullanılır. anahtarınızı oluşturmak ve sonraki adımlar için your-keyvault-name
kullanacaksınız.
Bir Key Vault ve anahtar oluşturmak için aşağıdaki komutları kullanın.
your-resource-group-name
, your-keyvault-name
ve your-key-name
kullanmak istediğiniz değerlerle değiştirin. komutu, zaten bir kaynak grubu oluşturduğunuzu varsayar.
Not
--bypass AzureServices
, bu erişim normalde Key Vault ağ ACL'leri tarafından engellendiğinde Media Services'ın (ve diğer Azure Hizmetlerinin) Key Vault'a erişmesine izin verir --enable-purge-protection
Ayarlanmadıysa anahtarınızı kullanamazsınız.
Key Vault oluşturma
az keyvault create --resource-group <your-resource-group-name> --bypass AzureServices --enable-purge-protection --name <your-keyvault-name>
Örnek JSON yanıtı:
{
"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"
}
Anahtarı oluşturma
az keyvault key create --kty RSA --name your-key-name --vault-name your-keyvault-name
Örnek JSON yanıtı:
{
"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
}
Media Services Sistem Tarafından Atanan Yönetilen Kimlik'e Key Vault erişimi verme
Media Services Yönetilen Kimliğine Key Vault erişimi verin. İki komut vardır:
Media Services hesabının Yönetilen Kimliğini alma (gösterme)
Aşağıdaki ilk komut, komutu tarafından döndürülen JSON'da listelenen principalId
Media Services hesabının Yönetilen Kimliği'ni gösterir.
Bu komut bir Media Services hesabının tüm özelliklerini gösterir.
az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
Not
Media Services hesabına erişim rolleri atadıysanız, bu satır "storageAuthentication": "ManagedIdentity"
döndürür.
Örnek JSON yanıtı:
{
"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"
}
Key Vault ilkesini ayarlama
İkinci komut, Key Vault'a Sorumlu Kimliği erişimi verir.
object-id
önceki adımdan aldığınız principalId
değerine ayarlayın.
Bu komutu kullanmak için Media Services principalId
object-id
olarak eklemeniz gerekir. henüz yapmadıysanız, bu kimliği almak için az ams account show --name <your-media-services-account-name> --resource-group <your-resource-group>
kullanın.
az keyvault set-policy --name <your-keyvault-name> --object-id <principalId> --key-permissions decrypt encrypt get list unwrapKey wrapKey
Örnek JSON yanıtı:
{
"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"
}
Key Vault'tan anahtarı kullanmak için Media Services'ı ayarlama
Media Services'ı oluşturduğunuz anahtarı kullanacak şekilde ayarlayın.
key-identifier
özelliğinin değeri, anahtar oluşturulduğunda çıkıştan gelir. Erişim denetimi değişikliklerini yaymak için gereken süre nedeniyle bu komut başarısız olabilir. Bu durumda, birkaç dakika sonra yeniden deneyin.
Bu komutu kullanmak için bir Key Vault ve bir anahtar oluşturmuş olmanız gerekir.
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>
Örnek JSON yanıtı:
{
"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"
}
Doğrulama
Hesabın Müşteri Tarafından Yönetilen Anahtar kullanılarak şifrelendiğini doğrulamak için hesap şifreleme özelliklerini görüntüleyin:
CLI ile hesap şifrelemesini gösterme
Bu komut hakkında daha fazla bilgi için bkz.Media Services
type
özelliği CustomerKey
göstermelidir ve currentKeyIdentifier
müşterinin Key Vault'unda bir anahtarın yoluna ayarlanmalıdır.
Kaynakları temizleme
Oluşturduğunuz kaynakları kullanmayı planlamıyorsanız kaynak grubunu silin.
CLI ile kaynak grubunu silme
az group delete --name <your-resource-group-name>
Yardım ve destek alma
Sorularınız için Media Services ile iletişime geçebilir veya aşağıdaki yöntemlerden birini kullanarak güncelleştirmelerimizi izleyebilirsiniz:
- Q & A
-
Stack Overflow. soruları
azure-media-services
ile etiketleyin. - Destek istemek için @AzureSupport@MSFTAzureMedia veya kullanın.
- Azure portalı üzerinden bir destek bileti açın.