Aracılığıyla paylaş


SDK v1 kullanarak Azure Machine Learning kaynakları ve iş akışları için kimlik doğrulamasını ayarlama

ŞUNUN IÇIN GEÇERLIDIR:Python SDK azureml v1

Azure Machine Learning çalışma alanınızda kimlik doğrulamasını ayarlamayı öğrenin. Azure Machine Learning çalışma alanınızda kimlik doğrulaması çoğu şey için Microsoft Entra Id'yi temel alır. Genel olarak, çalışma alanına bağlanırken kullanabileceğiniz dört kimlik doğrulama iş akışı vardır:

  • Etkileşimli: Microsoft Entra Id'de hesabınızı doğrudan kimlik doğrulaması yapmak veya kimlik doğrulaması için kullanılan bir belirteç almak için kullanırsınız. Etkileşimli kimlik doğrulaması, deneme ve yinelemeli geliştirme sırasında kullanılır. Etkileşimli kimlik doğrulaması, kaynaklara (web hizmeti gibi) erişimi kullanıcı bazında denetlemenizi sağlar.

  • Hizmet sorumlusu: Microsoft Entra Id'de bir hizmet sorumlusu hesabı oluşturur ve kimlik doğrulaması yapmak veya belirteç almak için bu hesabı kullanırsınız. Hizmet sorumlusu, kullanıcı etkileşimi gerektirmeden hizmette kimlik doğrulaması yapmak için otomatik bir işleme ihtiyacınız olduğunda kullanılır. Örneğin, eğitim kodu her değiştiğinde modeli eğiten ve test eden sürekli tümleştirme ve dağıtım betiği.

  • Azure CLI oturumu: Kimlik doğrulaması için etkin bir Azure CLI oturumu kullanırsınız. Azure CLI kimlik doğrulaması, deneme ve yinelemeli geliştirme sırasında veya önceden kimliği doğrulanmış bir oturum kullanarak hizmette kimlik doğrulaması yapmak için otomatik bir işleme ihtiyacınız olduğunda kullanılır. Kimlik bilgilerini Python kodunda depolamadan veya kullanıcıdan kimlik doğrulaması istemeden yerel iş istasyonunuzda Azure CLI aracılığıyla Azure'da oturum açabilirsiniz. Benzer şekilde, azure CLI'nin kimliğini bir hizmet sorumlusu kimliğiyle doğrularken sürekli tümleştirme ve dağıtım işlem hatlarının bir parçası olarak aynı betikleri yeniden kullanabilirsiniz.

  • Yönetilen kimlik: Azure Sanal Makinesinde Azure Machine Learning SDK'sını kullanırken, Azure için yönetilen kimlik kullanabilirsiniz. Bu iş akışı, kimlik bilgilerini Python kodunda depolamadan veya kullanıcıdan kimlik doğrulaması istemeden VM'nin yönetilen kimliği kullanarak çalışma alanına bağlanmasını sağlar. Azure Machine Learning işlem kümeleri ve işlem örnekleri, modelleri eğitirken çalışma alanına erişmek için yönetilen kimlik kullanacak şekilde de yapılandırılabilir.

Kullanılan kimlik doğrulama iş akışından bağımsız olarak, kaynaklara izin verilen erişim düzeyini (yetkilendirme) kapsamak için Azure rol tabanlı erişim denetimi (Azure RBAC) kullanılır. Örneğin, bir yönetici veya otomasyon işlemi bir işlem örneği oluşturma erişimine sahip olabilir, ancak bunu kullanamazken, veri bilimcisi bunu kullanabilir, ancak silemez veya oluşturamayabilir. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.

Microsoft Entra Koşullu Erişim, her kimlik doğrulama iş akışı için çalışma alanına erişimi daha fazla denetlemek veya kısıtlamak için kullanılabilir. Örneğin, bir yönetici yalnızca yönetilen cihazlardan çalışma alanı erişimine izin verebilir.

Önkoşullar

Microsoft Entra Kimliği

Çalışma alanınız için tüm kimlik doğrulama iş akışları Microsoft Entra ID'ye dayanır. Kullanıcıların tek tek hesapları kullanarak kimlik doğrulamasını istiyorsanız, Microsoft Entra Kimliğinizde hesapları olmalıdır. Hizmet sorumlularını kullanmak istiyorsanız, bunların Microsoft Entra Kimliğinizde mevcut olması gerekir. Yönetilen kimlikler, Microsoft Entra Id'nin de bir özelliğidir.

Microsoft Entra Id hakkında daha fazla bilgi için bkz . Microsoft Entra kimlik doğrulaması nedir?

Microsoft Entra hesaplarını oluşturduktan sonra, Azure Machine Learning'deki çalışma alanına ve diğer işlemlere erişim verme hakkında bilgi için bkz. Azure Machine Learning çalışma alanına erişimi yönetme.

Hizmet sorumlusu yapılandırma

Hizmet sorumlusu (SP) kullanmak için önce SP'yi oluşturmanız gerekir. Ardından çalışma alanınıza erişim izni verin. Daha önce de belirtildiği gibi, erişimi denetlemek için Azure rol tabanlı erişim denetimi (Azure RBAC) kullanılır, bu nedenle SP'ye hangi erişimin vereceğine de karar vermeniz gerekir.

Önemli

Hizmet sorumlusu kullanırken, hizmet sorumlusuna , kullanıldığı görev için gereken en düşük erişimi verin. Örneğin, yalnızca bir web dağıtımı için erişim belirtecini okumak için kullanılıyorsa hizmet sorumlusu sahibine veya katkıda bulunana erişim izni vermezsiniz.

En az erişim vermenin nedeni, hizmet sorumlusunun kimlik doğrulaması için parola kullanması ve parolanın otomasyon betiğinin bir parçası olarak depolanabileceğidir. Parola sızdırılırsa, belirli görevler için gereken en düşük erişime sahip olmak, SP'nin kötü amaçlı kullanımını en aza indirir.

SP oluşturmanın ve çalışma alanınıza erişim vermenin en kolay yolu Azure CLI'yi kullanmaktır. Bir hizmet sorumlusu oluşturmak ve çalışma alanınıza erişim vermek için aşağıdaki adımları kullanın:

Dekont

Bu adımların tümünü gerçekleştirmek için abonelikte yönetici olmanız gerekir.

  1. Azure aboneliğinizde kimlik doğrulaması:

    az login
    

    CLI varsayılan tarayıcınızı açabiliyorsa, tarayıcıyı açar ve oturum açma sayfasını yükler. Aksi takdirde, bir tarayıcı açmanız ve komut satırındaki yönergeleri izlemeniz gerekir. Yönergeler, yetkilendirme koduna https://aka.ms/devicelogin göz atmayı ve bu kodu girmeyi içerir.

    Birden çok Azure aboneliğiniz varsa, aboneliği ayarlamak için komutunu kullanabilirsiniz az account set -s <subscription name or ID> . Daha fazla bilgi için bkz . Birden çok Azure aboneliği kullanma.

    Diğer kimlik doğrulama yöntemleri için bkz . Azure CLI ile oturum açma.

  2. Hizmet sorumlusunu oluşturun. Aşağıdaki örnekte ml-auth adlı bir SP oluşturulur:

    az ad sp create-for-rbac --json-auth --name ml-auth --role Contributor --scopes /subscriptions/<subscription id>
    

    parametresi --json-auth Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu kullanımdan önceki sürümler kullanılır --sdk-auth.

    Çıkış, aşağıdakine benzer bir JSON olacaktır. Bu makaledeki clientIddiğer adımlar için ihtiyaç duyacağınız için , clientSecretve tenantId alanlarını not alın.

    {
        "clientId": "your-client-id",
        "clientSecret": "your-client-secret",
        "subscriptionId": "your-sub-id",
        "tenantId": "your-tenant-id",
        "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
        "resourceManagerEndpointUrl": "https://management.azure.com",
        "activeDirectoryGraphResourceId": "https://graph.windows.net",
        "sqlManagementEndpointUrl": "https://management.core.windows.net:5555",
        "galleryEndpointUrl": "https://gallery.azure.com/",
        "managementEndpointUrl": "https://management.core.windows.net"
    }
    
  3. Önceki adımda döndürülen değeri kullanarak hizmet sorumlusunun clientId ayrıntılarını alın:

    az ad sp show --id your-client-id
    

    Aşağıdaki JSON komutundan elde edilen çıkışın basitleştirilmiş bir örneğidir. Bir sonraki adım için değerine ihtiyacınız olduğundan alanı not objectId alın.

    {
        "accountEnabled": "True",
        "addIns": [],
        "appDisplayName": "ml-auth",
        ...
        ...
        ...
        "objectId": "your-sp-object-id",
        "objectType": "ServicePrincipal"
    }
    
  4. Azure Machine Learning tarafından kullanılan çalışma alanına ve diğer kaynaklara erişim vermek için aşağıdaki makalelerdeki bilgileri kullanın:

    Önemli

    Sahip erişimi, hizmet sorumlusunun çalışma alanınızdaki neredeyse tüm işlemleri gerçekleştirmesine olanak tanır. Bu belgede erişim vermenin nasıl yapıldığını göstermek için kullanılır; Bir üretim ortamında Microsoft, hizmet sorumlusuna amaçladığınız rolü gerçekleştirmek için gereken en düşük erişimi vermenizi önerir. Senaryonuz için gereken erişimle özel rol oluşturma hakkında bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.

Yönetilen kimliği yapılandırma

Önemli

Yönetilen kimlik yalnızca Bir Azure Sanal Makinesinden Azure Machine Learning SDK'sı kullanıldığında veya bir Azure Machine Learning işlem kümesinde veya işlem örneğinde desteklenir.

VM ile yönetilen kimlik

  1. VM'de Azure kaynakları için sistem tarafından atanan yönetilen kimliği etkinleştirin.

  2. Azure portalında çalışma alanınızı ve ardından Erişim Denetimi (IAM) seçeneğini belirleyin.

  3. Rol ataması ekle sayfasını açmak için Ekle, Rol Ataması Ekle'yi seçin.

  4. Aşağıdaki rolü atayın. Ayrıntılı adımlar için bkz. Azure portalı kullanarak Azure rolleri atama.

    Ayar Değer
    Rol Atamak istediğiniz rol.
    Şu kişiye erişim ata: Yönetilen Kimlik
    Üyeler Daha önce oluşturduğunuz yönetilen kimlik

    Add role assignment page in Azure portal.

İşlem kümesi ile yönetilen kimlik

Daha fazla bilgi için bkz . İşlem kümesi için yönetilen kimliği ayarlama.

Etkileşimli kimlik doğrulamayı kullanma

Önemli

Etkileşimli kimlik doğrulaması tarayıcınızı kullanır ve tanımlama bilgileri (üçüncü taraf tanımlama bilgileri dahil) gerektirir. Tanımlama bilgilerini devre dışı bırakmışsanız "oturum açamadık" gibi bir hata alabilirsiniz. Bu hata, Microsoft Entra çok faktörlü kimlik doğrulamasını etkinleştirdiyseniz de oluşabilir.

Belgelerdeki ve örneklerdeki örneklerin çoğu etkileşimli kimlik doğrulaması kullanır. Örneğin, SDK'yı kullanırken kullanıcı arabirimi tabanlı kimlik doğrulama akışını otomatik olarak girmenizi isteyen iki işlev çağrısı vardır:

  • işlevi çağrılırsa from_config() istem verilir.

    from azureml.core import Workspace
    ws = Workspace.from_config()
    

    from_config() işlevi, çalışma alanı bağlantı bilgilerinizi içeren bir JSON dosyası arar.

  • Oluşturucuyu Workspace kullanarak abonelik, kaynak grubu ve çalışma alanı bilgilerini sağlamak için etkileşimli kimlik doğrulaması da istenir.

    ws = Workspace(subscription_id="your-sub-id",
                  resource_group="your-resource-group-id",
                  workspace_name="your-workspace-name"
                  )
    

Bahşiş

Birden çok kiracıya erişiminiz varsa sınıfı içeri aktarmanız ve hedeflediğiniz kiracıyı açıkça tanımlamanız gerekebilir. oluşturucunun InteractiveLoginAuthentication çağrılması, yukarıdaki çağrılara benzer şekilde oturum açmanızı da ister.

from azureml.core.authentication import InteractiveLoginAuthentication
interactive_auth = InteractiveLoginAuthentication(tenant_id="your-tenant-id")

Azure CLI kullanılırken komutu CLI az login oturumunun kimliğini doğrulamak için kullanılır. Daha fazla bilgi için bkz . Azure CLI ile çalışmaya başlama.

Bahşiş

SDK'yı daha önce Azure CLI kullanarak etkileşimli olarak kimlik doğrulaması yaptığınız bir ortamdan kullanıyorsanız, CLI tarafından önbelleğe alınan kimlik bilgilerini kullanarak çalışma alanında kimlik doğrulaması yapmak için sınıfını kullanabilirsiniz AzureCliAuthentication :

from azureml.core.authentication import AzureCliAuthentication
cli_auth = AzureCliAuthentication()
ws = Workspace(subscription_id="your-sub-id",
               resource_group="your-resource-group-id",
               workspace_name="your-workspace-name",
               auth=cli_auth
               )

Hizmet sorumlusu kimlik doğrulamayı kullanma

Hizmet sorumlusu kullanarak SDK'dan çalışma alanınızda kimlik doğrulaması yapmak için sınıf oluşturucusunu ServicePrincipalAuthentication kullanın. Parametreler olarak hizmet sağlayıcısını oluştururken sahip olduğunuz değerleri kullanın. tenant_id parametresi yukarıdan ile eşlerclientIdtenantId, service_principal_id ile ve service_principal_password ile eşlerclientSecret.

from azureml.core.authentication import ServicePrincipalAuthentication

sp = ServicePrincipalAuthentication(tenant_id="your-tenant-id", # tenantID
                                    service_principal_id="your-client-id", # clientId
                                    service_principal_password="your-client-secret") # clientSecret

Değişkeni sp artık doğrudan SDK'da kullandığınız bir kimlik doğrulama nesnesini barındırıyor. Genel olarak, aşağıdaki kodda gösterildiği gibi yukarıdaki ortam değişkenlerinde kullanılan kimlikleri/gizli dizileri depolamak iyi bir fikirdir. Ortam değişkenlerinde depolama, bilgilerin yanlışlıkla GitHub deposunda denetlenmesini önler.

import os

sp = ServicePrincipalAuthentication(tenant_id=os.environ['AML_TENANT_ID'],
                                    service_principal_id=os.environ['AML_PRINCIPAL_ID'],
                                    service_principal_password=os.environ['AML_PRINCIPAL_PASS'])

Python'da çalışan ve öncelikli olarak SDK'yı kullanan otomatik iş akışları için, kimlik doğrulamanız için çoğu durumda olduğu gibi bu nesneyi kullanabilirsiniz. Aşağıdaki kod, oluşturduğunuz kimlik doğrulama nesnesini kullanarak çalışma alanınızda kimlik doğrulaması yapar.

from azureml.core import Workspace

ws = Workspace.get(name="ml-example",
                   auth=sp,
                   subscription_id="your-sub-id",
                   resource_group="your-rg-name")
ws.get_details()

Yönetilen kimlik kimlik doğrulamayı kullanma

Yönetilen kimlikle yapılandırılmış bir VM, işlem kümesi veya işlem örneğinden çalışma alanında kimlik doğrulaması yapmak için sınıfını MsiAuthentication kullanın. Aşağıdaki örnekte, bir çalışma alanında kimlik doğrulaması yapmak için bu sınıfın nasıl kullanılacağı gösterilmektedir:

from azureml.core.authentication import MsiAuthentication

msi_auth = MsiAuthentication()

ws = Workspace(subscription_id="your-sub-id",
                resource_group="your-resource-group-id",
                workspace_name="your-workspace-name",
                auth=msi_auth
                )

Koşullu Erişim kullanma

Yönetici olarak, çalışma alanında oturum açmış kullanıcılar için Microsoft Entra Koşullu Erişim ilkelerini zorunlu kılabilirsiniz. Örneğin, iki öğeli kimlik doğrulaması gerektirebilir veya yalnızca yönetilen cihazlardan oturum açmaya izin vekleyebilirsiniz. Azure Machine Learning çalışma alanları için Koşullu Erişim'i özellikle kullanmak için Koşullu Erişim ilkesini Azure Machine Learning adlı uygulamaya atayın. Uygulama kimliği : 0736f41a-0425-bdb5-1563eff02385.

Sonraki adımlar