Batch havuzlarında yönetilen kimlikleri yapılandırın

Azure kaynakları için yönetilen kimlikler, Microsoft Entra ID'de (Azure AD Kimliği) Azure kaynağı için bir kimlik sağlayarak karmaşık kimlik ve kimlik bilgisi yönetimini ortadan kaldırır. Bu kimlik, Azure'daki hedef kaynaklarla kimlik doğrulaması yapmak üzere Microsoft Entra belirteçlerini almak için kullanılır.

Batch Havuzuna Kullanıcı Tarafından Atanan Yönetilen Kimlik eklerken, yapılandırmanızda Identity özelliğini ayarlamak çok önemlidir. Bu özellik yönetilen kimliği havuza bağlayarak Azure kaynaklarına güvenli bir şekilde erişmesini sağlar. Identity özelliğinin yanlış ayarlanması, erişim sorunları veya karşıya yükleme hataları gibi yaygın hatalara neden olabilir.

Azure Batch'te yönetilen kimlikleri yapılandırma hakkında daha fazla bilgi için lütfen Azure Batch Yönetilen Kimlikleri belgelerine bakın.

Bu konuda Batch havuzlarında kullanıcı tarafından atanan yönetilen kimliklerin nasıl etkinleştirileceği ve düğümler içinde yönetilen kimliklerin nasıl kullanılacağı açıklanmaktadır.

Önemli

Yönetilen kimliklerle havuz oluşturma işlemi yalnızca Entra kimlik doğrulaması kullanılarak Batch Management Plane API'leri veya SDK'ları ile gerçekleştirilebilir. Batch Hizmeti API'lerini veya SDK'larını kullanarak yönetilen kimliklere sahip havuzlar oluşturmak mümkün değildir. Daha fazla bilgi için Batch API'leri ve araçlarına yönelik genel bakış belgelerine bakın.

Kullanıcının atadığı yönetilen kimliği oluşturun

İlk olarak, Batch hesabınızla aynı kiracıda kullanıcı tarafından atanan yönetilen kimliğinizi oluşturun. Kimliği Azure portalı, Azure Komut Satırı Arabirimi (Azure CLI), PowerShell, Azure Resource Manager veya Azure REST API'sini kullanarak oluşturabilirsiniz. Bu yönetilen kimliğin aynı kaynak grubunda, hatta aynı abonelikte olması gerekmez.

Tavsiye

Müşteri veri şifrelemesi için Batch hesabı için oluşturulan sistem tarafından atanan yönetilen kimlik, bu belgede açıklandığı gibi batch havuzunda kullanıcı tarafından atanan yönetilen kimlik olarak kullanılamaz. Hem Batch hesabında hem de Batch havuzunda aynı yönetilen kimliği kullanmak istiyorsanız, bunun yerine kullanıcı tarafından atanan ortak bir yönetilen kimlik kullanın.

Kullanıcı tarafından atanan yönetilen kimliklerle Batch havuzu oluşturma

Kullanıcı tarafından atanan bir veya daha fazla yönetilen kimlik oluşturduktan sonra, bu kimlikle veya bu kimliklerle bir Batch havuzu oluşturabilirsiniz. Şunları yapabilirsiniz:

Uyarı

Yönetilen havuz kimliklerinin yerinde güncellemeleri, havuzun etkin düğümleri varken desteklenmez. Mevcut işlem düğümleri değişikliklerle güncelleştirilmez. Tüm VM'lere aynı kimlik kümesinin atandığından emin olmak için kimlik koleksiyonunu değiştirmeden önce havuzu sıfır işlem düğümüne ölçeklendirmeniz önerilir.

Azure portalında Batch havuzu oluşturma

Azure portalı aracılığıyla kullanıcı tarafından atanan yönetilen kimliğe sahip bir Batch havuzu oluşturmak için:

  1. Azure Portal’ında oturum açın.
  2. Arama çubuğuna Batch hesaplarını yazın ve seçin.
  3. Batch hesapları sayfasında, Batch havuzu oluşturmak istediğiniz Batch hesabını seçin.
  4. Batch hesabının menüsündeki Özellikler'in altında Havuzlar'ı seçin.
  5. Havuzlar menüsünde Ekle'yi seçerek yeni bir Batch havuzu ekleyin.
  6. Havuz Kimliği için havuzunuz için bir tanımlayıcı girin.
  7. Kimlik için ayarı Kullanıcı tarafından atanan olarak değiştirin.
  8. Kullanıcı tarafından atanan yönetilen kimlik altında Ekle'yi seçin.
  9. Kullanıcı tarafından atanan yönetilen kimliği veya kullanmak istediğiniz kimlikleri seçin. Ardından Ekle'yi seçin.

Uyarı

Hem otomatik depolama hesap düzeyi hem de toplu iş hesabı düzeyi için aynı anda yalnızca bir yönetilen kimlik atayabilirsiniz. Ancak havuz düzeyinde, kullanıcı tarafından atanan birden çok yönetilen kimlik kullanma esnekliğine sahip olursunuz.

  1. İşletim Sistemi'nin altında, kullanılacak yayımcıyı, teklifi ve SKU'yu seçin.
  2. İsteğe bağlı olarak, kapsayıcı kayıt defterinde yönetilen kimliği etkinleştirin:
    1. Kapsayıcı yapılandırması için ayarı Özel olarak değiştirin. Ardından özel yapılandırmanızı seçin.
    2. Başlangıç görevi için Etkin'i seçin. Ardından Kaynak dosyaları'yı seçin ve depolama kapsayıcısı bilgilerinizi ekleyin.
    3. Kapsayıcı ayarlarını etkinleştirin.
    4. Kapsayıcı kayıt defteriniÖzel olarak değiştir
    5. Kimlik referansı için depolama kapsayıcısını seçin.

.NET ile Batch havuzu oluşturma

Batch .NET yönetim kitaplığıyla kullanıcı tarafından atanan yönetilen kimliğe sahip bir Batch havuzu oluşturmak için aşağıdaki örnek kodu kullanın:

var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);

var batchAccountIdentifier = ResourceIdentifier.Parse("your-batch-account-resource-id");
BatchAccountResource batchAccount = _armClient.GetBatchAccountResource(batchAccountIdentifier);

var poolName = "HelloWorldPool";
var imageReference = new BatchImageReference()
{
    Publisher = "canonical",
    Offer = "0001-com-ubuntu-server-jammy",
    Sku = "22_04-lts",
    Version = "latest"
};
string nodeAgentSku = "batch.node.ubuntu 22.04";

var batchAccountPoolData = new BatchAccountPoolData()
{
    VmSize = "Standard_DS1_v2",
    DeploymentConfiguration = new BatchDeploymentConfiguration()
    {
        VmConfiguration = new BatchVmConfiguration(imageReference, nodeAgentSku)
    },
    ScaleSettings = new BatchAccountPoolScaleSettings()
    {
        FixedScale = new BatchAccountFixedScaleSettings()
        {
            TargetDedicatedNodes = 1
        }
    }
};

ArmOperation<BatchAccountPoolResource> armOperation = batchAccount.GetBatchAccountPools().CreateOrUpdate(
    WaitUntil.Completed, poolName, batchAccountPoolData);
BatchAccountPoolResource pool = armOperation.Value;

Uyarı

Identity özelliğini eklemek için aşağıdaki örnek kodu kullanın:

var identityResourceId = new ResourceIdentifier(
    "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}");

var poolData = new BatchAccountPoolData()
{
    VmSize = "STANDARD_D2_V2",
    DeploymentConfiguration = new BatchDeploymentConfiguration()
    {
        VmConfiguration = new BatchVmConfiguration(
            imageReference: new BatchImageReference()
            {
                Publisher = "canonical",
                Offer = "0001-com-ubuntu-server-jammy",
                Sku = "22_04-lts",
                Version = "latest"
            },
            nodeAgentSkuId: "batch.node.ubuntu 22.04")
    },
    ScaleSettings = new BatchAccountPoolScaleSettings()
    {
        FixedScale = new BatchAccountFixedScaleSettings() { TargetDedicatedNodes = 1 }
    },
    Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
    {
        UserAssignedIdentities =
        {
            [identityResourceId] = new UserAssignedIdentity()
        }
    }
};

ArmOperation<BatchAccountPoolResource> op = await batchAccount.GetBatchAccountPools()
    .CreateOrUpdateAsync(WaitUntil.Completed, "myPool", poolData);

Batch düğümlerinde kullanıcı tarafından atanan yönetilen kimlikleri kullanma

Azure Depolama veya Azure Container Registry gibi işlem düğümlerinde doğrudan diğer Azure kaynaklarına erişen birçok Azure Batch işlevi yönetilen kimlikleri destekler. Azure Batch ile yönetilen kimlikleri kullanma hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:

Ayrıca, yönetilen kimliklerin yönetilen kimlikleri destekleyen Azure kaynaklarına doğrudan erişebilmesi için görevlerinizi el ile yapılandırabilirsiniz.

Batch düğümleri içinde yönetilen kimlik belirteçleri alabilir ve bunları Azure Örnek Meta Veri Hizmeti aracılığıyla Microsoft Entra kimlik doğrulaması yapmak için kullanabilirsiniz.

Windows için, kimlik doğrulaması için bir erişim belirteci almak için PowerShell betiği şöyledir:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -Method GET -Headers @{Metadata="true"}

Linux için Bash betiği şöyledir:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource={Resource App Id Url}' -H Metadata:true

Daha fazla bilgi için, erişim belirteci almak amacıyla bir Azure VM'de Azure kaynakları için yönetilen kimlikleri nasıl kullanacağınızı öğrenmek üzere Azure kaynakları için yönetilen kimlikleri kullanma kılavuzuna bakın.

Sonraki adımlar