Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme

Azure Depolama, blob verilerine yönelik istekleri yetkilendirmek için Microsoft Entra Id kullanılmasını destekler. Microsoft Entra Id ile Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak bir kullanıcı, grup veya uygulama hizmet sorumlusu olabilecek bir güvenlik sorumlusuna izinler verilmektedir. OAuth 2.0 belirtecini döndürmek için güvenlik sorumlusunun kimliği Microsoft Entra Id tarafından doğrulanır. Daha sonra belirteç, Blob hizmetine karşı bir isteği yetkilendirmek için kullanılabilir.

Microsoft Entra Id ile yetkilendirme, tüm genel bölgelerdeki ve ulusal bulutlardaki tüm genel amaçlı ve Blob depolama hesaplarında kullanılabilir. Yalnızca Azure Resource Manager dağıtım modeliyle oluşturulan depolama hesapları Microsoft Entra yetkilendirmesini destekler.

Önemli

En iyi güvenlik için Microsoft, mümkün olduğunca blob, kuyruk ve tablo verilerine karşı istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Microsoft Entra Kimliği ve yönetilen kimliklerle yetkilendirme, Paylaşılan Anahtar yetkilendirmesi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler nedir? Bir .NET uygulaması için yönetilen kimliği etkinleştirme ve kullanma örneği için bkz . .NET ile Azure'da barındırılan uygulamaların Kimliğini Azure kaynaklarından doğrulama.

Şirket içi uygulamalar gibi Azure dışında barındırılan kaynaklar için Azure Arc aracılığıyla yönetilen kimlikleri kullanabilirsiniz. Örneğin, Azure Arc özellikli sunucularda çalışan uygulamalar, Azure hizmetlerine bağlanmak için yönetilen kimlikleri kullanabilir. Daha fazla bilgi edinmek için bkz . Azure Arc özellikli sunucularla Azure kaynaklarında kimlik doğrulaması.

Paylaşılan erişim imzalarının (SAS) kullanıldığı senaryolar için Microsoft, kullanıcı temsilcisi SAS'sini kullanmanızı önerir. Kullanıcı temsilcisi SAS'sinin güvenliği hesap anahtarı yerine Microsoft Entra kimlik bilgileriyle sağlanır. Paylaşılan erişim imzaları hakkında bilgi edinmek için bkz . Paylaşılan erişim imzalarıyla verilere sınırlı erişim verme. .NET ile kullanıcı temsilcisi SAS oluşturma ve kullanma örneği için bkz . .NET ile blob için kullanıcı temsilcisi SAS'i oluşturma.

Bloblar için Microsoft Entra Id'ye genel bakış

Bir güvenlik sorumlusu (kullanıcı, grup veya uygulama) blob kaynağına erişmeye çalıştığında, anonim erişim için kullanılabilir bir blob olmadığı sürece istek yetkilendirilmelidir. Microsoft Entra Id ile kaynağa erişim iki adımlı bir işlemdir:

  1. İlk olarak, güvenlik sorumlusunun kimliği doğrulanır ve bir OAuth 2.0 belirteci döndürülür.

    Kimlik doğrulama adımı, bir uygulamanın çalışma zamanında OAuth 2.0 erişim belirteci istemesini gerektirir. Bir uygulama Azure VM, sanal makine ölçek kümesi veya Azure İşlevleri uygulaması gibi bir Azure varlığından çalışıyorsa blob verilerine erişmek için yönetilen kimlik kullanabilir.

  2. Ardından, belirteç Blob hizmetine bir isteğin parçası olarak geçirilir ve hizmet tarafından belirtilen kaynağa erişim yetkisi vermek için kullanılır.

    Yetkilendirme adımı, isteği yapan güvenlik sorumlusuna bir veya daha fazla Azure RBAC rolü atanmasını gerektirir. Daha fazla bilgi için bkz . Erişim hakları için Azure rolleri atama.

Portal, PowerShell veya Azure CLI ile Microsoft Entra hesabı kullanma

Microsoft Entra hesabıyla Azure portalındaki verilere erişme hakkında bilgi edinmek için bkz . Azure portalından veri erişimi. Microsoft Entra hesabıyla Azure PowerShell veya Azure CLI komutlarını çağırmayı öğrenmek için bkz . PowerShell veya Azure CLI'dan veri erişimi.

Uygulama kodunda erişimi yetkilendirmek için Microsoft Entra Id kullanma

Microsoft Entra Id ile Azure Depolama erişimi yetkilendirmek için, OAuth 2.0 belirtecini almak için aşağıdaki istemci kitaplıklarından birini kullanabilirsiniz:

Azure Identity istemci kitaplığı

Azure Identity istemci kitaplığı, Azure SDK aracılığıyla Microsoft Entra Id ile yetkilendirme için OAuth 2.0 erişim belirteci alma işlemini basitleştirir. .NET, Java, Python, JavaScript ve Go için Azure Depolama istemci kitaplıklarının en son sürümleri, Azure Depolama isteklerini yetkilendirmek üzere erişim belirteci almak için basit ve güvenli bir araç sağlamak üzere bu dillerin her biri için Azure Kimlik kitaplıklarıyla tümleşir.

Azure Identity istemci kitaplığının avantajlarından biri, uygulamanızın geliştirme ortamında veya Azure'da çalıştığına bakılmaksızın erişim belirtecini almak için aynı kodu kullanmanıza olanak tanır. Azure Identity istemci kitaplığı, güvenlik sorumlusu için bir erişim belirteci döndürür. Kodunuz Azure'da çalışırken, güvenlik sorumlusu Azure kaynakları, hizmet sorumlusu veya kullanıcı veya grup için yönetilen bir kimlik olabilir. Geliştirme ortamında, istemci kitaplığı test amacıyla bir kullanıcı veya hizmet sorumlusu için bir erişim belirteci sağlar.

Azure Identity istemci kitaplığı tarafından döndürülen erişim belirteci bir belirteç kimlik bilgisinde kapsüllenmiş. Ardından, Azure Depolama'a karşı yetkili işlemleri gerçekleştirirken kullanılacak bir hizmet istemci nesnesi almak için belirteç kimlik bilgilerini kullanabilirsiniz. Erişim belirteci ve belirteç kimlik bilgilerini almanın basit bir yolu, Azure Identity istemci kitaplığı tarafından sağlanan DefaultAzureCredential sınıfını kullanmaktır. DefaultAzureCredential , birkaç farklı kimlik bilgisi türünü sıralı olarak deneyerek belirteç kimlik bilgilerini almayı dener. DefaultAzureCredential hem geliştirme ortamında hem de Azure'da çalışır.

Aşağıdaki tablo, çeşitli senaryolarda verilere erişim yetkisi vermek için ek bilgilere işaret eder:

Dil .NET Java JavaScript Python Go
Microsoft Entra ID ile kimlik doğrulamasına genel bakış Azure hizmetleriyle .NET uygulamalarının kimliğini doğrulama Java ve Azure Identity ile Azure kimlik doğrulaması Azure SDK'sını kullanarak Azure'da JavaScript uygulamalarının kimliğini doğrulama Azure SDK'sını kullanarak Azure'da Python uygulamalarının kimliğini doğrulama
Geliştirici hizmet sorumlularını kullanarak kimlik doğrulaması Hizmet sorumlularını kullanarak yerel geliştirme sırasında Azure hizmetlerinde .NET uygulamalarının kimliğini doğrulama Hizmet sorumlusuyla Azure kimlik doğrulaması Hizmet sorumlusuyla JS uygulamalarını Azure hizmetlerine kimlik doğrulama Hizmet sorumlularını kullanarak yerel geliştirme sırasında Azure hizmetlerinde Python uygulamalarının kimliğini doğrulama Hizmet sorumlusuyla Go için Azure SDK kimlik doğrulaması
Geliştirici veya kullanıcı hesaplarını kullanarak kimlik doğrulaması Geliştirici hesaplarını kullanarak yerel geliştirme sırasında Azure hizmetlerinde .NET uygulamalarının kimliğini doğrulama Kullanıcı kimlik bilgileriyle Azure kimlik doğrulaması Geliştirme hesaplarıyla JS uygulamalarını Azure hizmetlerine kimlik doğrulama Geliştirici hesaplarını kullanarak yerel geliştirme sırasında Azure hizmetlerinde Python uygulamalarının kimliğini doğrulama Go için Azure SDK ile Azure kimlik doğrulaması
Azure tarafından barındırılan uygulamalardan kimlik doğrulaması .NET için Azure SDK ile Azure'da barındırılan uygulamaların Kimliğini Azure kaynaklarına doğrulama Azure tarafından barındırılan Java uygulamalarının kimliğini doğrulama Azure tarafından barındırılan JavaScript uygulamalarının kimliğini JavaScript için Azure SDK ile Azure kaynaklarına doğrulama Python için Azure SDK ile Azure'da barındırılan uygulamaların Azure kaynaklarına kimliğini doğrulama Yönetilen kimlik kullanarak Go için Azure SDK ile kimlik doğrulaması
Şirket içi uygulamalardan kimlik doğrulaması Şirket içinde barındırılan .NET uygulamalarından Azure kaynaklarında kimlik doğrulaması Azure kaynaklarında şirket içi JavaScript uygulamalarının kimliğini doğrulama Şirket içinde barındırılan Python uygulamalarından Azure kaynaklarında kimlik doğrulaması
Kimlik istemci kitaplığına genel bakış .NET için Azure Identity istemci kitaplığı Java için Azure Identity istemci kitaplığı JavaScript için Azure Identity istemci kitaplığı Python için Azure Identity istemci kitaplığı Go için Azure Identity istemci kitaplığı

Microsoft Authentication Library (MSAL)

Microsoft mümkün olduğunda Azure Identity istemci kitaplığının kullanılmasını önerir ancak MSAL kitaplığının belirli gelişmiş senaryolarda kullanılması uygun olabilir. Daha fazla bilgi için bkz . MSAL hakkında bilgi edinin.

Azure Depolama erişimi için bir OAuth belirteci almak için MSAL kullandığınızda, bir Microsoft Entra kaynak kimliği sağlamanız gerekir. Microsoft Entra kaynak kimliği, verilen bir belirtecin Azure kaynağına erişim sağlamak için kullanılabileceğini belirten hedef kitleyi gösterir. Azure Depolama söz konusu olduğunda, kaynak kimliği tek bir depolama hesabına özgü olabilir veya herhangi bir depolama hesabı için geçerli olabilir.

Tek bir depolama hesabına ve hizmetine özgü bir kaynak kimliği sağladığınızda, kaynak kimliği yalnızca belirtilen hesaba ve hizmete istekleri yetkilendirmek için bir belirteç almak için kullanılır. Aşağıdaki tabloda, çalıştığınız buluta bağlı olarak kaynak kimliği için kullanılacak değer listelenir. <account-name> değerini depolama hesabınızın adıyla değiştirin.

Bulut Kaynak Kimliği
Azure Global https://<account-name>.blob.core.windows.net
Azure Kamu https://<account-name>.blob.core.usgovcloudapi.net
Azure China 21Vianet https://<account-name>.blob.core.chinacloudapi.cn

Aşağıdaki tabloda gösterildiği gibi, herhangi bir depolama hesabına uygulanan bir kaynak kimliği de sağlayabilirsiniz. Bu kaynak kimliği tüm genel ve bağımsız bulutlar için aynıdır ve herhangi bir depolama hesabına yönelik istekleri yetkilendirmek için bir belirteç almak için kullanılır.

Bulut Kaynak Kimliği
Azure Global
Azure Kamu
Azure China 21Vianet
https://storage.azure.com/

Erişim hakları için Azure rolleri atama

Microsoft Entra, Azure RBAC aracılığıyla güvenli kaynaklara erişim haklarını yetkiler. Azure Depolama, blob verilerine erişmek için kullanılan yaygın izin kümelerini kapsayan yerleşik RBAC rolleri kümesini tanımlar. Blob verilerine erişim için özel roller de tanımlayabilirsiniz. Blob erişimi için Azure rolleri atama hakkında daha fazla bilgi edinmek için bkz . Blob verilerine erişim için Azure rolü atama.

Microsoft Entra güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure kaynakları için yönetilen kimlik olabilir. Güvenlik sorumlusuna atanan RBAC rolleri, sorumlunun belirtilen kaynak için sahip olduğu izinleri belirler. Blob erişimi için Azure rolleri atama hakkında daha fazla bilgi edinmek için bkz . Blob verilerine erişim için Azure rolü atama

Bazı durumlarda, bir depolama kaynağı için çok sayıda rol atamanız olduğunda blob kaynaklarına ayrıntılı erişimi etkinleştirmeniz veya izinleri basitleştirmeniz gerekebilir. Rol atamalarıyla ilgili koşulları yapılandırmak için Azure öznitelik tabanlı erişim denetimini (Azure ABAC) kullanabilirsiniz. Koşulları özel bir rolle kullanabilir veya yerleşik rolleri seçebilirsiniz. ABAC ile Azure depolama kaynakları için koşulları yapılandırma hakkında daha fazla bilgi için bkz . Azure rol atama koşullarını (önizleme) kullanarak bloblara erişimi yetkilendirme. Blob veri işlemleri için desteklenen koşullar hakkında ayrıntılı bilgi için bkz. Azure Depolama'de Azure rol atama koşullarına yönelik eylemler ve öznitelikler (önizleme).

Not

Bir Azure Depolama hesabı oluşturduğunuzda, Microsoft Entra Kimliği aracılığıyla verilere erişim izinleri otomatik olarak atanmamış olur. Blob Depolama erişim için kendinize açıkça bir Azure rolü atamanız gerekir. Bunu aboneliğiniz, kaynak grubunuz, depolama hesabınız veya kapsayıcınız düzeyinde atayabilirsiniz.

Kaynak kapsamı

Azure RBAC rolünü bir güvenlik sorumlusuna atamadan önce, güvenlik sorumlusunun sahip olması gereken erişim kapsamını belirleyin. En iyi yöntemler, yalnızca mümkün olan en dar kapsamı vermenin her zaman en iyi yöntem olduğunu belirler. Daha geniş bir kapsamda tanımlanan Azure RBAC rolleri, altındaki kaynaklar tarafından devralınır.

Azure blob kaynaklarına erişimin kapsamını en dar kapsamla başlayarak aşağıdaki düzeylerde ayarlayabilirsiniz:

  • Tek bir kapsayıcı. Bu kapsamda, rol ataması kapsayıcıdaki tüm bloblara ve kapsayıcı özelliklerine ve meta verilerine uygulanır.
  • Depolama hesabı. Bu kapsamda, rol ataması tüm kapsayıcılar ve blobları için geçerlidir.
  • Kaynak grubu. Bu kapsamda, rol ataması kaynak grubundaki tüm depolama hesaplarındaki tüm kapsayıcılar için geçerlidir.
  • Abonelik. Bu kapsamda, bir rol ataması abonelikteki tüm kaynak gruplarındaki tüm depolama hesaplarındaki tüm kapsayıcılar için geçerlidir.
  • Bir yönetim grubu. Bu kapsamda bir rol ataması, yönetim grubundaki tüm aboneliklerdeki tüm kaynak gruplarındaki tüm depolama hesaplarındaki tüm kapsayıcılar için geçerlidir.

Azure RBAC rol atamalarının kapsamı hakkında daha fazla bilgi için bkz . Azure RBAC kapsamını anlama.

Bloblar için Azure yerleşik rolleri

Azure RBAC, Microsoft Entra Id ve OAuth kullanarak blob verilerine erişim yetkisi vermek için çeşitli yerleşik roller sağlar. Azure Depolama'da veri kaynaklarına izin sağlayan bazı rollere örnek olarak şunlar verilebilir:

Güvenlik sorumlusuna Azure yerleşik rolünü atamayı öğrenmek için bkz . Blob verilerine erişim için Azure rolü atama. Azure RBAC rollerini ve izinlerini listelemeyi öğrenmek için bkz . Azure rol tanımlarını listeleme.

Azure Depolama için yerleşik rollerin nasıl tanımlandığı hakkında daha fazla bilgi için bkz. Rol tanımlarını anlama. Azure özel rolleri oluşturma hakkında bilgi için bkz . Azure özel rolleri.

Yalnızca veri erişimi için açıkça tanımlanan roller, bir güvenlik sorumlusunın blob verilerine erişmesine izin verir. Sahip, Katkıda Bulunan ve Depolama Hesabı Katkıda Bulunanı gibi yerleşik roller, bir güvenlik sorumlusunun depolama hesabını yönetmesine izin verir, ancak Microsoft Entra Id aracılığıyla söz konusu hesaptaki blob verilerine erişim sağlamaz. Ancak, bir rol Microsoft.Depolama içeriyorsa /storageAccounts/listKeys/action, ardından bu rolün atandığı bir kullanıcı, hesap erişim anahtarlarıyla Paylaşılan Anahtar yetkilendirmesi yoluyla depolama hesabındaki verilere erişebilir. Daha fazla bilgi için bkz . Azure portalında blob verilerine erişimi yetkilendirmeyi seçme.

Hem veri hizmetleri hem de yönetim hizmeti için Azure Depolama için Azure yerleşik rolleri hakkında ayrıntılı bilgi için Azure RBAC için Azure yerleşik rolleri bölümündeki Depolama bölümüne bakın. Ayrıca, Azure'da izin sağlayan farklı rol türleri hakkında bilgi için bkz . Azure rolleri, Microsoft Entra rolleri ve klasik abonelik yöneticisi rolleri.

Önemli

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

Veri işlemleri için erişim izinleri

Belirli Blob hizmeti işlemlerini çağırmak için gereken izinler hakkında ayrıntılı bilgi için bkz . Veri işlemlerini çağırma izinleri.

Microsoft Entra hesabıyla verilere erişme

Azure portalı, PowerShell veya Azure CLI aracılığıyla blob verilerine erişim, kullanıcının Microsoft Entra hesabı veya hesap erişim anahtarları (Paylaşılan Anahtar yetkilendirmesi) kullanılarak yetkilendirilebilir.

Dikkat

Daha az güvenli olabileceği için Paylaşılan Anahtar ile yetkilendirme önerilmez. En iyi güvenlik için, Azure Depolama hesabı için Paylaşılan Anahtar yetkilendirmesini engelleme bölümünde açıklandığı gibi depolama hesabınız için Paylaşılan Anahtar aracılığıyla yetkilendirmeyi devre dışı bırakın.

Erişim anahtarlarının ve bağlantı dizesi kullanımı, üretim veya hassas verilere erişmeyen ilk kavram kanıtı uygulamaları veya geliştirme prototipleriyle sınırlandırılmalıdır. Aksi takdirde, Azure kaynaklarında kimlik doğrulaması yapılırken Azure SDK'da bulunan belirteç tabanlı kimlik doğrulama sınıfları her zaman tercih edilmelidir.

Microsoft, istemcilerin Azure Depolama'daki verilere erişim yetkisi vermek için Microsoft Entra Id veya paylaşılan erişim imzası (SAS) kullanmasını önerir. Daha fazla bilgi için bkz . Veri erişimi için işlemleri yetkilendirme.

Azure portalından veri erişimi

Azure portalı, Bir Azure depolama hesabındaki blob verilerine erişmek için Microsoft Entra hesabınızı veya hesap erişim anahtarlarını kullanabilir. Azure portalının hangi yetkilendirme düzenini kullandığı size atanan Azure rollerine bağlıdır.

Blob verilerine erişmeye çalıştığınızda, Azure portalı ilk olarak Size Microsoft.Depolama ile bir Azure rolü atanıp atanmadığını denetler/storageAccounts/listkeys/action. Bu eylemle size bir rol atandıysa, Azure portalı Paylaşılan Anahtar yetkilendirmesi aracılığıyla blob verilerine erişmek için hesap anahtarını kullanır. Bu eylemle size bir rol atanmamışsa, Azure portalı Microsoft Entra hesabınızı kullanarak verilere erişmeyi dener.

Microsoft Entra hesabınızı kullanarak Azure portalından blob verilerine erişmek için blob verilerine erişim izinlerine ve ayrıca Azure portalındaki depolama hesabı kaynakları arasında gezinmek için izinlere ihtiyacınız vardır. Azure Depolama tarafından sunulan yerleşik roller, blob kaynaklarına erişim izni verir, ancak depolama hesabı kaynaklarına izin vermez. Bu nedenle, portala erişim için de Okuyucu rolü gibi depolama hesabı kapsamında veya daha geniş kapsamda bir Azure Resource Manager rolü atanması gerekir. Okuyucu rolü en kısıtlı izinleri sağlar ama depolama hesabı yönetim kaynaklarına erişim veren başka bir Azure Resource Manager rolü de kabul edilebilir. Kullanıcılara Microsoft Entra hesabıyla Azure portalda veri erişimi sağlayacak izinleri atama hakkında daha fazla bilgi edinmek için bkz. Blob verilerine erişim için Azure rolü atama.

Azure portalda bir kapsayıcıya gittiğinizde hangi kimlik doğrulama düzeninin kullanımda olduğu gösterilir. Portalda veri erişimi hakkında daha fazla bilgi için bkz. Azure portalda blob verilerine erişimin nasıl yetkilendirileceğini seçme.

PowerShell veya Azure CLI'dan veri erişimi

Azure CLI ve PowerShell, Microsoft Entra kimlik bilgileriyle oturum açmayı destekler. Oturum açtığınızda oturumunuz bu kimlik bilgileri altında çalışır. Daha fazla bilgi edinmek için aşağıdaki makalelerden birine bakın:

Özellik desteği

Bu özellik için destek, Data Lake Storage 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü veya SSH Dosya Aktarım Protokolü (SFTP) etkinleştirilerek etkilenebilir. Bu özelliklerden herhangi birini etkinleştirdiyseniz bu özelliğin desteğini değerlendirmek için bkz. Azure Depolama hesaplarında Blob Depolama özellik desteği.

Blob veri işlemlerini Microsoft Entra Id ile yetkilendirme yalnızca REST API 2017-11-09 ve sonraki sürümlerde desteklenir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.

Sonraki adımlar