Şablonları kullanarak Azure VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma
Azure kaynakları için yönetilen kimlikler, Microsoft Entra Id'nin bir özelliğidir. Azure kaynakları için yönetilen kimlikleri destekleyen Azure hizmetlerinin her biri kendi zaman çizelgesine tabidir. Başlamadan önce kaynağınıza yönelik yönetilen kimliklerin kullanılabilirlik durumunu ve bilinen sorunları gözden geçirdiğinizden emin olun.
Azure kaynakları için yönetilen kimlikler, Azure hizmetlerine Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Bu kimliği kullanarak, Microsoft Entra kimlik doğrulamasını destekleyen tüm hizmetlerde kodunuzda kimlik bilgileri bulunmasına gerek kalmadan kimlik doğrulaması yapabilirsiniz.
Bu makalede, Azure Resource Manager dağıtım şablonunu kullanarak bir Azure VM'de Azure kaynakları işlemleri için aşağıdaki yönetilen kimlikleri gerçekleştirmeyi öğreneceksiniz:
Önkoşullar
- Azure Resource Manager dağıtım şablonunu kullanmayı bilmiyorsanız genel bakış bölümüne göz atın. Sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlik arasındaki farkı gözden geçirmeyi unutmayın.
- Henüz bir Azure hesabınız yoksa, devam etmeden önce ücretsiz bir hesaba kaydolun.
Azure Resource Manager şablonları
Azure portalı ve betik oluşturmada olduğu gibi Azure Resource Manager şablonları da bir Azure kaynak grubu tarafından tanımlanan yeni veya değiştirilmiş kaynakları dağıtmanıza olanak sağlar. Şablon düzenleme ve dağıtım için hem yerel hem de portal tabanlı çeşitli seçenekler mevcuttur:
- Azure Market özel bir şablon kullanarak sıfırdan bir şablon oluşturabilir veya şablonu mevcut ortak veya hızlı başlangıç şablonuna dayandırabilirsiniz.
- Şablonu özgün dağıtımdan veya dağıtımın geçerli durumundan dışarı aktararak mevcut bir kaynak grubundan türetme.
- Yerel bir JSON düzenleyicisi (VS Code gibi) kullanma ve ardından PowerShell veya CLI kullanarak karşıya yükleme ve dağıtma.
- Şablon oluşturmak ve dağıtmak için Visual Studio Azure Kaynak Grubu projesini kullanma.
Seçtiğiniz seçenek ne olursa olsun, şablon söz dizimi ilk dağıtım ve yeniden dağıtım sırasında aynıdır. Yeni veya mevcut bir VM'de sistem veya kullanıcı tarafından atanan yönetilen kimliği etkinleştirme işlemi aynı şekilde yapılır. Ayrıca Azure Resource Manager varsayılan olarak dağıtımlara yönelik artımlı bir güncelleştirme yapar.
Sistem tarafından atanan yönetilen kimlik
Bu bölümde, Azure Resource Manager şablonu kullanarak sistem tarafından atanan yönetilen kimliği etkinleştirecek ve devre dışı bırakacaksınız.
Azure VM'sinin oluşturulması sırasında veya mevcut bir VM'de sistem tarafından atanan yönetilen kimliği etkinleştirme
Vm'de sistem tarafından atanan yönetilen kimliği etkinleştirmek için hesabınıza Sanal Makine Katılımcısı rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.
Azure'da yerel olarak veya Azure portalı aracılığıyla oturum açtığınızda, VM'yi içeren Azure aboneliğiyle ilişkili bir hesap kullanın.
Sistem tarafından atanan yönetilen kimliği etkinleştirmek için şablonu bir düzenleyiciye yükleyin, bölümünde ilgilendiğiniz kaynağı bulun
Microsoft.Compute/virtualMachines
ve özelliği özelliğiyle"type": "Microsoft.Compute/virtualMachines"
aynı düzeyde ekleyin"identity"
.resources
Aşağıdaki sözdizimini kullanın:"identity": { "type": "SystemAssigned" },
İşiniz bittiğinde, şablonunuzun bölümüne aşağıdaki bölümler eklenmelidir
resource
ve aşağıdakine benzer olmalıdır:"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "SystemAssigned", } } ]
VM'nin sistem tarafından atanan yönetilen kimliğine rol atama
VM'nizde sistem tarafından atanan yönetilen kimliği etkinleştirdikten sonra, oluşturulduğu kaynak grubuna Okuyucu erişimi gibi bir rol vermek isteyebilirsiniz. Bu adımda size yardımcı olacak ayrıntılı bilgileri Azure Resource Manager şablonlarını kullanarak Azure rollerini atama makalesinde bulabilirsiniz.
Azure VM'den sistem tarafından atanan yönetilen kimliği devre dışı bırakma
Sistem tarafından atanan yönetilen kimliği bir VM'den kaldırmak için hesabınızın Sanal Makine Katılımcısı rol atamasına ihtiyacı vardır. Başka Microsoft Entra dizin rolü ataması gerekmez.
Azure'da yerel olarak veya Azure portalı aracılığıyla oturum açtığınızda, VM'yi içeren Azure aboneliğiyle ilişkili bir hesap kullanın.
Şablonu bir düzenleyiciye yükleyin ve bölümün
Microsoft.Compute/virtualMachines
içinderesources
ilgili kaynağı bulun. Yalnızca sistem tarafından atanan yönetilen kimliğe sahip bir VM'niz varsa, kimlik türünüNone
olarak değiştirerek vm'yi devre dışı bırakabilirsiniz.Microsoft.Compute/virtualMachines API sürüm 2018-06-01
VM'nizde hem sistem hem de kullanıcı tarafından atanan yönetilen kimlikler varsa, kimlik türünden kaldırın
SystemAssigned
ve sözlük değerleriyleuserAssignedIdentities
birlikte tutunUserAssigned
.Microsoft.Compute/virtualMachines API sürüm 2018-06-01
Sizin
apiVersion
2017-12-01
ve VM'nizin hem sistem hem de kullanıcı tarafından atanan yönetilen kimlikleri varsa, kimlik türünden kaldırınSystemAssigned
ve kullanıcı tarafından atanan yönetilen kimlikler dizisiyleidentityIds
birlikte tutunUserAssigned
.
Aşağıdaki örnekte, kullanıcı tarafından atanan yönetilen kimlikler olmadan bir VM'den sistem tarafından atanan yönetilen kimliğin nasıl kaldırılacağı gösterilmektedir:
{
"apiVersion": "2018-06-01",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "None"
}
}
Kullanıcı tarafından atanan yönetilen kimlik
Bu bölümde, Azure Resource Manager şablonunu kullanarak Bir Azure VM'ye kullanıcı tarafından atanan yönetilen kimlik atayacaksınız.
Dekont
Azure Resource Manager Şablonu kullanarak kullanıcı tarafından atanan yönetilen kimlik oluşturmak için bkz . Kullanıcı tarafından atanan yönetilen kimlik oluşturma.
Azure VM'ye kullanıcı tarafından atanan yönetilen kimlik atama
Vm'ye kullanıcı tarafından atanan bir kimlik atamak için hesabınızın Yönetilen Kimlik Operatörü rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.
öğesinin
resources
altına aşağıdaki girdiyi ekleyerek vm'nize kullanıcı tarafından atanan yönetilen kimliği atayın. değerini oluşturduğunuz kullanıcı tarafından atanan yönetilen kimliğin adıyla değiştirdiğinizden<USERASSIGNEDIDENTITY>
emin olun.Microsoft.Compute/virtualMachines API sürüm 2018-06-01
sizin
apiVersion
ise2018-06-01
, kullanıcı tarafından atanan yönetilen kimlikleriniz sözlük biçiminde depolanıruserAssignedIdentities
ve<USERASSIGNEDIDENTITYNAME>
değer, şablonunuzun bölümünde tanımlanan bir değişkendevariables
depolanmalıdır.{ "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
Microsoft.Compute/virtualMachines API sürüm 2017-12-01
sizin
apiVersion
ise2017-12-01
, kullanıcı tarafından atanan yönetilen kimlikleriniz dizideidentityIds
depolanır ve<USERASSIGNEDIDENTITYNAME>
değer, şablonunuzun bölümünde tanımlanan bir değişkendevariables
depolanmalıdır.{ "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] } }
İşiniz bittiğinde, şablonunuzun bölümüne aşağıdaki bölümler eklenmelidir
resource
ve aşağıdakine benzer olmalıdır:Microsoft.Compute/virtualMachines API sürüm 2018-06-01
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } } ]
Microsoft.Compute/virtualMachines API sürüm 2017-12-01
"resources": [ { //other resource provider properties... "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] } } ]
Azure VM'den kullanıcı tarafından atanan yönetilen kimliği kaldırma
Vm'den kullanıcı tarafından atanan bir kimliği kaldırmak için hesabınıza Sanal Makine Katılımcısı rol ataması gerekir. Başka Microsoft Entra dizin rolü ataması gerekmez.
Azure'da yerel olarak veya Azure portalı aracılığıyla oturum açtığınızda, VM'yi içeren Azure aboneliğiyle ilişkili bir hesap kullanın.
Şablonu bir düzenleyiciye yükleyin ve bölümün
Microsoft.Compute/virtualMachines
içinderesources
ilgili kaynağı bulun. Yalnızca kullanıcı tarafından atanan yönetilen kimliğe sahip bir VM'niz varsa, kimlik türünüNone
olarak değiştirerek vm'yi devre dışı bırakabilirsiniz.Aşağıdaki örnekte, sistem tarafından atanan yönetilen kimlikler olmadan sanal makineden kullanıcı tarafından atanan tüm yönetilen kimliklerin nasıl kaldırılacağı gösterilmektedir:
{ "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachines", "name": "[parameters('vmName')]", "location": "[resourceGroup().location]", "identity": { "type": "None" }, }
Microsoft.Compute/virtualMachines API sürüm 2018-06-01
Vm'den kullanıcı tarafından atanan tek bir yönetilen kimliği kaldırmak için, bunu sözlükten
useraAssignedIdentities
kaldırın.Sistem tarafından atanan bir yönetilen kimliğiniz varsa, değerin
type
altındaki değerdeidentity
tutun.Microsoft.Compute/virtualMachines API sürüm 2017-12-01
Vm'den kullanıcı tarafından atanan tek bir yönetilen kimliği kaldırmak için diziden
identityIds
kaldırın.Sistem tarafından atanan bir yönetilen kimliğiniz varsa, değerin
type
altındaki değerdeidentity
tutun.