AzCopy ve Microsoft Entra Id ile bloblara ve dosyalara erişimi yetkilendirme

Microsoft Entra Id kullanarak AzCopy'ye yetkilendirme kimlik bilgilerini sağlayabilirsiniz. Bu şekilde, her komuta paylaşılan erişim imzası (SAS) belirteci eklemeniz gerekmez.

Rol atamalarınızı doğrulayarak başlayın. Ardından, yetkilendirmek istediğiniz güvenlik sorumlusu türünü seçin. Kullanıcı kimliği, yönetilen kimlik ve hizmet sorumlusu bir güvenlik sorumlusu türüdür.

Erişimi yetkilendirmek için bellek içi ortam değişkenlerini ayarlayacaksınız. Ardından herhangi bir AzCopy komutunu çalıştırın. AzCopy işlemi tamamlamak için gereken Kimlik Doğrulama belirtecini alır. İşlem tamamlandıktan sonra belirteç bellekten kaybolur.

AzCopy, sağladığınız kimlik bilgilerini kullanarak OAuth belirtecini alır. Alternatif olarak, AzCopy etkin bir Azure CLI veya Azure PowerShell oturumunun OAuth belirtecini kullanabilir.

AzCopy hakkında daha fazla bilgi için AzCopy'yi kullanmaya başlayın.

Rol atamalarını doğrulama

İhtiyacınız olan yetkilendirme düzeyi, dosyaları karşıya yüklemeyi mi yoksa yalnızca indirmeyi mi planladığınıza bağlıdır.

Yalnızca dosyaları indirmek istiyorsanız Depolama Blob Veri Okuyucusu rolünün (Azure Blob Depolama) veya Depolama Dosya Verileri Privileged Reader rolünün (Azure Dosyalar) kullanıcı kimliğinize, yönetilen kimliğinize veya hizmet sorumlunuza atandığını doğrulayın.

Dosyaları Azure Blob Depolama yüklemek istiyorsanız, bu rollerden birinin güvenlik sorumlunuza atandığını doğrulayın.

Dosyaları bir Azure dosya paylaşımına yüklemek istiyorsanız, Depolama Dosya Verileri Privileged Reader'ın güvenlik sorumlunuza atandığını doğrulayın.

Bu roller şu kapsamlardan herhangi birinde güvenlik sorumlunuza atanabilir:

  • Kapsayıcı (dosya sistemi) veya dosya paylaşımı
  • Storage account
  • Kaynak grubu
  • Abonelik

Rolleri doğrulamayı ve atamayı öğrenmek için bkz. Blob verilerine erişim için Azure rolü atama (Blob Depolama) veya Azure portalında dosya verilerine erişimi yetkilendirmeyi seçme (Azure Dosyalar).

Not

Azure rol atamalarının yayılması beş dakika kadar sürebilir.

Güvenlik sorumlunuz hedef kapsayıcının veya dizinin erişim denetimi listesine (ACL) eklendiyse, güvenlik sorumlunuza bu rollerden birinin atanmış olması gerekmez. ACL'de güvenlik sorumlunuzun hedef dizinde yazma iznine ve kapsayıcı ile her üst dizinde yürütme iznine sahip olması gerekir.

Daha fazla bilgi edinmek için bkz. Azure Data Lake Storage 2. Nesil'de erişim denetimi modeli.

AzCopy ile yetkilendirme

AzCopy, güvenlik sorumlusunu yetkilendirmek için sağladığınız kimlik bilgilerini kullanır.

Kullanıcı kimliğini yetkilendirme

Kullanıcı kimliğinize gerekli yetkilendirme düzeyinin verildiğini doğruladıktan sonra aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

Ardından herhangi bir azcopy komutunu çalıştırın (Örneğin: azcopy list https://contoso.blob.core.windows.net).

Bu komut bir kimlik doğrulama kodu ve bir web sitesinin URL'sini döndürür. Web sitesini açın, kodu sağlayın ve ardından İleri düğmesini seçin.

Kapsayıcı oluşturma

Bir oturum açma penceresi görüntülenir. Bu pencerede, Azure hesabı kimlik bilgilerinizi kullanarak Azure hesabınızda oturum açın. Başarıyla oturum açtıktan sonra işlem tamamlanabilir.

Yönetilen kimliği yetkilendirme

AzCopy'yi kullanıcı etkileşimi olmadan çalışan bir betiğin içinde kullanmayı planlıyorsanız ve betik bir Azure Sanal Makinesi'nden (VM) çalıştırılıyorsa bu harika bir seçenektir. Bu seçeneği kullanırken VM'de herhangi bir kimlik bilgisi depolamanız gerekmez.

Vm'nizde etkinleştirdiğiniz sistem genelinde yönetilen bir kimlik kullanarak veya VM'nize atadığınız kullanıcı tarafından atanan yönetilen kimliğin istemci kimliği, Nesne Kimliği veya Kaynak Kimliği'ni kullanarak hesabınızda oturum açabilirsiniz.

Sistem genelinde yönetilen kimliği etkinleştirme veya kullanıcı tarafından atanan yönetilen kimlik oluşturma hakkında daha fazla bilgi edinmek için bkz . Azure portalını kullanarak VM'de Azure kaynakları için yönetilen kimlikleri yapılandırma.

Sistem genelinde yönetilen kimlik kullanarak yetkilendirme

İlk olarak, VM'nizde sistem genelinde yönetilen kimliği etkinleştirdiğinizden emin olun. Bkz. Sistem tarafından atanan yönetilen kimlik.

Aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Ardından herhangi bir azcopy komutunu çalıştırın (Örneğin: azcopy list https://contoso.blob.core.windows.net).

Kullanıcı tarafından atanan yönetilen kimliği kullanarak yetkilendirme

İlk olarak, VM'nizde kullanıcı tarafından atanan yönetilen kimliği etkinleştirdiğinizden emin olun. Bkz. Kullanıcı tarafından atanan yönetilen kimlik.

Aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Ardından, aşağıdaki komutlardan birini yazın ve ENTER tuşuna basın.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Yer tutucuyu <client-id> , kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğiyle değiştirin.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Yer tutucuyu <object-id> , kullanıcı tarafından atanan yönetilen kimliğin nesne kimliğiyle değiştirin.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Yer tutucuyu <resource-id> , kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliğiyle değiştirin.

Bu değişkenleri ayarladıktan sonra herhangi bir azcopy komutunu çalıştırabilirsiniz (Örneğin: azcopy list https://contoso.blob.core.windows.net).

Hizmet sorumlusunu yetkilendirme

Özellikle şirket içinde çalışırken kullanıcı etkileşimi olmadan çalışan bir betik içinde AzCopy kullanmayı planlıyorsanız bu harika bir seçenektir. Azure'da çalışan VM'lerde AzCopy çalıştırmayı planlıyorsanız yönetilen hizmet kimliğini yönetmek daha kolaydır. Daha fazla bilgi edinmek için bu makalenin Yönetilen kimlik yetkilendirme bölümüne bakın.

İstemci gizli dizisi kullanarak veya hizmet sorumlunuzun uygulama kaydıyla ilişkili bir sertifikanın parolasını kullanarak hesabınızda oturum açabilirsiniz.

Hizmet sorumlusu oluşturma hakkında daha fazla bilgi edinmek için bkz . Nasıl yapılır: Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturmak için portalı kullanma.

Genel olarak hizmet sorumluları hakkında daha fazla bilgi edinmek için bkz. Microsoft Entra Id'de uygulama ve hizmet sorumlusu nesneleri

İstemci gizli dizisi kullanarak hizmet sorumlusunu yetkilendirme

Aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>

Yer tutucusunu <application-id> hizmet sorumlunuzun uygulama kaydının uygulama kimliğiyle değiştirin. Yer tutucuyu <client-secret> istemci gizli dizisiyle değiştirin. Yer tutucuyu <tenant-id> , depolama hesabının ait olduğu kuruluşun kiracı kimliğiyle değiştirin. Kiracı kimliğini bulmak için Azure portalında Microsoft Entra ID > Özellikleri > Dizin Kimliği'ni seçin.

Not

Kullanıcıdan parolayı toplamak için bir istem kullanmayı göz önünde bulundurun. Bu şekilde, parolanız komut geçmişinizde görünmez.

Ardından herhangi bir azcopy komutunu çalıştırın (Örneğin: azcopy list https://contoso.blob.core.windows.net).

Sertifika kullanarak hizmet sorumlusunu yetkilendirme

Yetkilendirme için kendi kimlik bilgilerinizi kullanmayı tercih ederseniz, uygulama kaydınıza bir sertifika yükleyebilir ve ardından bu sertifikayı kullanarak oturum açabilirsiniz.

Sertifikanızı uygulama kaydınıza yüklemenin yanı sıra, azCopy'nin çalıştırılacağı makineye veya VM'ye kaydedilmiş sertifikanın bir kopyasına da sahip olmanız gerekir. Sertifikanın bu kopyası içinde olmalıdır. PFX veya . PEM biçimidir ve özel anahtarı içermelidir. Özel anahtar parola korumalı olmalıdır. Windows kullanıyorsanız ve sertifikanız yalnızca bir sertifika deposunda varsa, bu sertifikayı bir PFX dosyasına (özel anahtar dahil) dışarı aktardığınızdan emin olun. Yönergeler için bkz . Export-PfxCertificate

Aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>

Yer tutucusunu <application-id> hizmet sorumlunuzun uygulama kaydının uygulama kimliğiyle değiştirin. Yer tutucuyu <path-to-certificate-file> sertifika dosyasının göreli veya tam yolu ile değiştirin. AzCopy bu sertifikanın yolunu kaydeder, ancak sertifikanın bir kopyasını kaydetmez, bu nedenle bu sertifikayı yerinde tuttuğunuzdan emin olun. Yer tutucuyu <certificate-password> sertifikanın parolası ile değiştirin. Yer tutucuyu <tenant-id> , depolama hesabının ait olduğu kuruluşun kiracı kimliğiyle değiştirin. Kiracı kimliğini bulmak için Azure portalında Microsoft Entra ID > Özellikleri > Dizin Kimliği'ni seçin.

Not

Kullanıcıdan parolayı toplamak için bir istem kullanmayı göz önünde bulundurun. Bu şekilde, parolanız komut geçmişinizde görünmez.

Ardından herhangi bir azcopy komutunu çalıştırın (Örneğin: azcopy list https://contoso.blob.core.windows.net).

AzCopy oturum açma komutunu kullanarak yetkilendirme

Bellek içi değişkenleri kullanmaya alternatif olarak, azcopy login komutunu kullanarak erişimi yetkilendirsiniz.

azcopy login komutu bir OAuth belirteci alır ve ardından bu belirteci sisteminizdeki bir gizli dizi deposuna yerleştirir. İşletim sisteminizin Linux anahtarlığı gibi bir gizli dizi deposu yoksa azcopy login komutu çalışmaz çünkü belirteci yerleştirecek hiçbir yer yoktur.

Kullanıcı kimliğini yetkilendirme (azcopy login komutu)

Kullanıcı kimliğinize gerekli yetkilendirme düzeyinin verildiğini doğruladıktan sonra bir komut istemi açın, aşağıdaki komutu yazın ve ENTER tuşuna basın.

azcopy login

Hata alırsanız, depolama hesabının ait olduğu kuruluşun kiracı kimliğini eklemeyi deneyin.

azcopy login --tenant-id=<tenant-id>

Yer tutucuyu <tenant-id> , depolama hesabının ait olduğu kuruluşun kiracı kimliğiyle değiştirin. Kiracı kimliğini bulmak için Azure portalında Microsoft Entra ID > Özellikleri > Dizin Kimliği'ni seçin.

Bu komut bir kimlik doğrulama kodu ve bir web sitesinin URL'sini döndürür. Web sitesini açın, kodu sağlayın ve ardından İleri düğmesini seçin.

Kapsayıcı oluşturma

Bir oturum açma penceresi görüntülenir. Bu pencerede, Azure hesabı kimlik bilgilerinizi kullanarak Azure hesabınızda oturum açın. Başarıyla oturum açtıktan sonra tarayıcı penceresini kapatabilir ve AzCopy'yi kullanmaya başlayabilirsiniz.

Sistem genelinde yönetilen kimlik kullanarak yetkilendirme (azcopy login komutu)

İlk olarak, VM'nizde sistem genelinde yönetilen kimliği etkinleştirdiğinizden emin olun. Bkz. Sistem tarafından atanan yönetilen kimlik.

Ardından komut konsolunuzda aşağıdaki komutu yazın ve ENTER tuşuna basın.

azcopy login --identity

Kullanıcı tarafından atanan yönetilen kimlik kullanarak yetkilendirme (azcopy login komutu)

İlk olarak, VM'nizde kullanıcı tarafından atanan yönetilen kimliği etkinleştirdiğinizden emin olun. Bkz. Kullanıcı tarafından atanan yönetilen kimlik.

Ardından komut konsolunuzda aşağıdaki komutlardan herhangi birini yazın ve ENTER tuşuna basın.

azcopy login --identity --identity-client-id "<client-id>"

Yer tutucuyu <client-id> , kullanıcı tarafından atanan yönetilen kimliğin istemci kimliğiyle değiştirin.

azcopy login --identity --identity-object-id "<object-id>"

Yer tutucuyu <object-id> , kullanıcı tarafından atanan yönetilen kimliğin nesne kimliğiyle değiştirin.

azcopy login --identity --identity-resource-id "<resource-id>"

Yer tutucuyu <resource-id> , kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliğiyle değiştirin.

Hizmet sorumlusunu yetkilendirme (azcopy login komutu)

Betiği çalıştırmadan önce, AzCopy'ye hizmet sorumlunuzun kimlik bilgilerini sağlayabilmeniz için etkileşimli olarak en az bir kez oturum açmanız gerekir. Bu kimlik bilgileri, betiğinizin bu hassas bilgileri sağlaması gerekmeyecek şekilde güvenli ve şifrelenmiş bir dosyada depolanır.

İstemci gizli dizisi kullanarak veya hizmet sorumlunuzun uygulama kaydıyla ilişkili bir sertifikanın parolasını kullanarak hesabınızda oturum açabilirsiniz.

Hizmet sorumlusu oluşturma hakkında daha fazla bilgi edinmek için bkz . Nasıl yapılır: Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturmak için portalı kullanma.

Bir hizmet sorumlusunu istemci gizli dizisi kullanarak yetkilendirme (azcopy login komutu)

İlk olarak ortam değişkenini AZCOPY_SPA_CLIENT_SECRET hizmet sorumlunuzun uygulama kaydının istemci gizli dizisine ayarlayın.

Not

Bu değeri işletim sisteminizin ortam değişkeni ayarlarında değil komut isteminizden ayarladığınızdan emin olun. Bu şekilde, değer yalnızca geçerli oturumda kullanılabilir.

Bu örnekte PowerShell'de bunu nasıl yapabileceğiniz gösterilmektedir.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Not

Bu örnekte gösterildiği gibi bir istem kullanmayı göz önünde bulundurun. Bu şekilde, parolanız konsolunuzun komut geçmişinde görünmez.

Ardından, aşağıdaki komutu yazın ve ENTER tuşuna basın.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

Yer tutucusunu <application-id> hizmet sorumlunuzun uygulama kaydının uygulama kimliğiyle değiştirin. Yer tutucuyu <tenant-id> , depolama hesabının ait olduğu kuruluşun kiracı kimliğiyle değiştirin. Kiracı kimliğini bulmak için Azure portalında Microsoft Entra ID > Özellikleri > Dizin Kimliği'ni seçin.

Sertifika kullanarak hizmet sorumlusunu yetkilendirme (azcopy login komutu)

Yetkilendirme için kendi kimlik bilgilerinizi kullanmayı tercih ederseniz, uygulama kaydınıza bir sertifika yükleyebilir ve ardından bu sertifikayı kullanarak oturum açabilirsiniz.

Sertifikanızı uygulama kaydınıza yüklemenin yanı sıra, azCopy'nin çalıştırılacağı makineye veya VM'ye kaydedilmiş sertifikanın bir kopyasına da sahip olmanız gerekir. Sertifikanın bu kopyası içinde olmalıdır. PFX veya . PEM biçimidir ve özel anahtarı içermelidir. Özel anahtar parola korumalı olmalıdır. Windows kullanıyorsanız ve sertifikanız yalnızca bir sertifika deposunda varsa, bu sertifikayı bir PFX dosyasına (özel anahtar dahil) dışarı aktardığınızdan emin olun. Yönergeler için bkz . Export-PfxCertificate

Ardından ortam değişkenini AZCOPY_SPA_CERT_PASSWORD sertifika parolası olarak ayarlayın.

Not

Bu değeri işletim sisteminizin ortam değişkeni ayarlarında değil komut isteminizden ayarladığınızdan emin olun. Bu şekilde, değer yalnızca geçerli oturumda kullanılabilir.

Bu örnekte, bu görevi PowerShell'de nasıl yapabileceğiniz gösterilmektedir.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Ardından, aşağıdaki komutu yazın ve ENTER tuşuna basın.

azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

Yer tutucusunu <application-id> hizmet sorumlunuzun uygulama kaydının uygulama kimliğiyle değiştirin. Yer tutucuyu <path-to-certificate-file> sertifika dosyasının göreli veya tam yolu ile değiştirin. AzCopy bu sertifikanın yolunu kaydeder, ancak sertifikanın bir kopyasını kaydetmez, bu nedenle bu sertifikayı yerinde tuttuğunuzdan emin olun. Yer tutucuyu <tenant-id> , depolama hesabının ait olduğu kuruluşun kiracı kimliğiyle değiştirin. Kiracı kimliğini bulmak için Azure portalında Microsoft Entra ID > Özellikleri > Dizin Kimliği'ni seçin.

Not

Bu örnekte gösterildiği gibi bir istem kullanmayı göz önünde bulundurun. Bu şekilde, parolanız konsolunuzun komut geçmişinde görünmez.

Azure CLI ile yetkilendirme

Azure CLI kullanarak oturum açarsanız Azure CLI, AzCopy'nin işlemleri yetkilendirmek için kullanabileceği bir OAuth belirteci alır.

AzCopy'nin bu belirteci kullanmasını sağlamak için aşağıdaki komutu yazın ve ENTER tuşuna basın.

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Azure CLI ile oturum açma hakkında daha fazla bilgi için bkz . Azure CLI ile oturum açma.

Azure PowerShell ile yetkilendirme

Azure PowerShell kullanarak oturum açarsanız Azure PowerShell, AzCopy'nin işlemleri yetkilendirmek için kullanabileceği bir OAuth belirteci alır.

AzCopy'nin bu belirteci kullanmasını sağlamak için aşağıdaki komutu yazın ve ENTER tuşuna basın.

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"

Azure PowerShell ile oturum açma hakkında daha fazla bilgi için bkz . Azure PowerShell ile oturum açma.

Sonraki adımlar

  • AzCopy hakkında daha fazla bilgi için AzCopy'yi kullanmaya başlama

  • Sorularınız, sorunlarınız veya genel geri bildiriminiz varsa bunları GitHub sayfasında gönderin.