Azure kaynakları için yönetilen kimlikler Azure sanal makineleriyle nasıl çalışır?
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 yönetilen kimliklerin Azure sanal makineleriyle (VM) nasıl çalıştığını öğreneceksiniz.
Nasıl çalışır?
Dahili olarak, yönetilen kimlikler yalnızca Azure kaynaklarıyla kullanılabilen özel türde hizmet sorumlularıdır. Yönetilen kimlik silindiğinde, ilgili hizmet sorumlusu otomatik olarak kaldırılır. Ayrıca, Kullanıcı Tarafından Atanan veya Sistem Tarafından Atanan Kimlik oluşturulduğunda, Yönetilen Kimlik Kaynak Sağlayıcısı (MSRP) bu kimliğe dahili olarak bir sertifika gönderir.
Kodunuz, Microsoft Entra kimlik doğrulamasını destekleyen hizmetler için erişim belirteçleri istemek üzere yönetilen kimlik kullanabilir. Hizmet örneği tarafından kullanılan kimlik bilgilerinin dağıtımıyla Azure ilgilenir.
Aşağıdaki diyagramda yönetilen hizmet kimliklerinin Azure sanal makineleriyle (VM) nasıl çalıştığı gösterilmektedir:
Aşağıdaki tabloda, sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikler arasındaki farklar gösterilmektedir:
Özellik | Sistem tarafından atanan yönetilen kimlik | Kullanıcı tarafından atanan yönetilen kimlik |
---|---|---|
Oluşturma | Bir Azure kaynağının (örneğin, bir Azure sanal makinesi veya Azure Uygulaması Hizmeti) parçası olarak oluşturulur. | Tek başına Azure kaynağı olarak oluşturulur. |
Yaşam döngüsü | Yönetilen kimliğin oluşturulduğu Azure kaynağıyla paylaşılan yaşam döngüsü. Üst kaynak silindiğinde yönetilen kimlik de silinir. |
Bağımsız yaşam döngüsü. Açıkça silinmelidir. |
Azure kaynakları arasında paylaşma | Paylaşılamaz. Yalnızca tek bir Azure kaynağıyla ilişkilendirilebilir. |
Paylaşılabilir. Aynı kullanıcı tarafından atanan yönetilen kimlik birden fazla Azure kaynağıyla ilişkilendirilebilir. |
Yaygın kullanım örnekleri | Tek bir Azure kaynağı içinde yer alan iş yükleri. Bağımsız kimliklere ihtiyacınız olan iş yükleri. Örneğin, tek bir sanal makinede çalışan bir uygulama |
Birden çok kaynakta çalışan ve tek bir kimliği paylaşabilen iş yükleri. Sağlama akışının bir parçası olarak güvenli bir kaynak için ön yetkilendirme gerektiren iş yükleri. Kaynakların sık sık geri dönüştürüldüğü ancak izinlerin tutarlı kalması gereken iş yükleri. Örneğin, birden çok sanal makinenin aynı kaynağa erişmesi gereken bir iş yükü |
Sistem tarafından atanan yönetilen kimlik
Azure Resource Manager sanal makinede sistem tarafından atanan yönetilen kimliği etkinleştirmek için bir istek alır.
Azure Resource Manager, VM'nin kimliği için Microsoft Entra Kimliği'nde bir hizmet sorumlusu oluşturur. Hizmet sorumlusu, abonelik tarafından güvenilen Microsoft Entra kiracısında oluşturulur.
Azure Resource Manager, azure örnek meta veri hizmeti kimlik uç noktasını (Windows ve Linux için) kullanarak VM kimliğini güncelleştirir ve uç noktaya hizmet sorumlusu istemci kimliği ve sertifikası sağlar.
VM bir kimliğe sahip olduktan sonra hizmet sorumlusunu kullanarak Azure kaynaklarına VM erişimi sağlayabilirsiniz. Azure Resource Manager'ı çağırmak için Azure Rol Tabanlı Erişim Denetimi'ni (Azure RBAC) kullanarak VM hizmet sorumlusuna uygun rolü atayın. Key Vault'u çağırmak için kodunuza Key Vault'ta belirli bir gizli diziye veya anahtara erişim verebilirsiniz.
VM'de çalışan kodunuz, Azure Örnek Meta Verileri hizmet uç noktasından yalnızca VM'nin içinden erişilebilen bir belirteç isteyebilir:
http://169.254.169.254/metadata/identity/oauth2/token
- Resource parametresi belirtecin gönderildiği hizmeti belirtir. Azure Resource Manager ile kimlik doğrulaması için
resource=https://management.azure.com/
kullanın. - API version parametresi IMDS sürümünü belirtir; api-version=2018-02-01 veya üstünü kullanın.
Aşağıdaki örnekte, Azure Örnek Meta Verileri hizmeti için erişim belirteci almak üzere yerel Yönetilen Kimlik uç noktasına istekte bulunmak için CURL'nin nasıl kullanılacağı gösterilmektedir.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
- Resource parametresi belirtecin gönderildiği hizmeti belirtir. Azure Resource Manager ile kimlik doğrulaması için
3. adımda yapılandırılan istemci kimliği ve sertifika kullanılarak erişim belirteci istemek için (5. adımda belirtildiği gibi) Microsoft Entra Id çağrısı yapılır. Microsoft Entra ID bir JSON Web Belirteci (JWT) erişim belirteci döndürür.
Kodunuz, microsoft Entra kimlik doğrulamasını destekleyen bir hizmete yapılan çağrıda erişim belirtecini gönderir.
Kullanıcı tarafından atanan yönetilen kimlik
Azure Resource Manager kullanıcı tarafından atanan bir yönetilen kimlik oluşturma isteği alır.
Azure Resource Manager, kullanıcı tarafından atanan yönetilen kimlik için Microsoft Entra Id içinde bir hizmet sorumlusu oluşturur. Hizmet sorumlusu, abonelik tarafından güvenilen Microsoft Entra kiracısında oluşturulur.
Azure Resource Manager, vm üzerinde kullanıcı tarafından atanan yönetilen kimliği yapılandırma isteği alır ve Azure Örnek Meta Veri Hizmeti kimlik uç noktasını kullanıcı tarafından atanan yönetilen kimlik hizmet sorumlusu istemci kimliği ve sertifikasıyla güncelleştirir.
Kullanıcı tarafından atanan yönetilen kimlik oluşturulduktan sonra hizmet sorumlusu bilgilerini kullanarak Azure kaynaklarına erişim verir. Azure Resource Manager'ı çağırmak için Azure RBAC kullanarak kullanıcı tarafından atanan kimliğin hizmet sorumlusuna uygun rolü atayın. Key Vault'u çağırmak için kodunuza Key Vault'ta belirli bir gizli diziye veya anahtara erişim verebilirsiniz.
Not
Bu adımı 3. adımdan önce de gerçekleştirebilirsiniz.
VM'de çalışan kodunuz, azure örnek meta veri hizmeti kimlik uç noktasından yalnızca VM içinden erişilebilen bir belirteç isteyebilir:
http://169.254.169.254/metadata/identity/oauth2/token
Resource parametresi belirtecin gönderildiği hizmeti belirtir. Azure Resource Manager ile kimlik doğrulaması için
resource=https://management.azure.com/
kullanın.client_id
parametresi, belirtecin istendiği kimliği belirtir. Tek bir sanal makinede birden çok kullanıcı tarafından atanan kimlik olduğunda, belirsizliği ortadan kaldırmak için bu değer gereklidir. İstemci Kimliğini Yönetilen Kimliğe Genel Bakış bölümünde bulabilirsiniz:API version parametresi, Azure Instance Metadata Service sürümünü belirtir.
api-version=2018-02-01
veya daha yüksek bir değer kullanın.Aşağıdaki örnekte, Azure Örnek Meta Verileri hizmeti için erişim belirteci almak üzere yerel Yönetilen Kimlik uç noktasına istekte bulunmak için CURL'nin nasıl kullanılacağı gösterilmektedir.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F&client_id=00001111-aaaa-2222-bbbb-3333cccc4444' -H Metadata:true
3. adımda yapılandırılan istemci kimliği ve sertifika kullanılarak erişim belirteci istemek için (5. adımda belirtildiği gibi) Microsoft Entra Id çağrısı yapılır. Microsoft Entra ID bir JSON Web Belirteci (JWT) erişim belirteci döndürür.
Kodunuz, microsoft Entra kimlik doğrulamasını destekleyen bir hizmete yapılan çağrıda erişim belirtecini gönderir.
Sonraki adımlar
Azure kaynakları için yönetilen kimlikler özelliğini kullanmaya başlamak için aşağıdaki hızlı başlangıçlardan yararlanın: