Microsoft Entra Id kullanarak kuyruklara erişimi yetkilendirme
Azure Depolama, verileri kuyruğa alma isteklerini 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. Ardından belirteç, Kuyruk hizmetine karşı bir isteği yetkilendirmek için kullanılabilir.
Microsoft Entra Id ile yetkilendirme, Paylaşılan Anahtar yetkilendirmesi yerine üstün güvenlik ve kullanım kolaylığı sağlar. Microsoft, gerekli en düşük ayrıcalıklarla erişim sağlamak için mümkün olduğunda kuyruk uygulamalarınızla Microsoft Entra yetkilendirmesini kullanmanızı önerir.
Microsoft Entra Id ile yetkilendirme, tüm genel bölgelerdeki ve ulusal bulutlardaki tüm genel amaçlı depolama hesapları için kullanılabilir. Yalnızca Azure Resource Manager dağıtım modeliyle oluşturulan depolama hesapları Microsoft Entra yetkilendirmesini destekler.
Kuyruklar için Microsoft Entra Id'ye genel bakış
Bir güvenlik sorumlusu (kullanıcı, grup veya uygulama) bir kuyruk kaynağına erişmeye çalıştığında, istek anonim erişim için kullanılabilir bir kuyruk olmadığı sürece yetkilendirilmelidir. Microsoft Entra Id ile kaynağa erişim iki adımlı bir işlemdir:
İ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, kuyruk verilerine erişmek için yönetilen kimlik kullanabilir.
Ardından, belirteç Kuyruk hizmetine bir isteğin parçası olarak geçirilir ve hizmet tarafından belirtilen kaynağa erişimi yetkilendirmek 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:
- Çoğu geliştirme senaryosu için Azure Identity istemci kitaplığı önerilir.
- Microsoft Kimlik Doğrulama Kitaplığı (MSAL), belirli gelişmiş senaryolar için uygun olabilir.
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:
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>.queue.core.windows.net |
Azure Kamu | https://<account-name>.queue.core.usgovcloudapi.net |
Azure China 21Vianet | https://<account-name>.queue.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, kuyruk verilerine erişmek için kullanılan ortak izin kümelerini kapsayan bir dizi yerleşik RBAC rolü tanımlar. Kuyruk verilerine erişim için özel roller de tanımlayabilirsiniz. Kuyruk erişimi için Azure rolleri atama hakkında daha fazla bilgi edinmek için bkz . Kuyruk 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 sahip olacağı izinleri belirler. Kuyruk erişimi için Azure rolleri atama hakkında daha fazla bilgi edinmek için bkz . Kuyruk verilerine erişim için Azure rolü atama
Bazı durumlarda, bir depolama kaynağı için çok sayıda rol atamanız olduğunda kuyruk 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ı kullanarak kuyruklara erişimi yetkilendirme. Kuyruk veri işlemleri için desteklenen koşullar hakkında ayrıntılı bilgi için bkz . Azure kuyrukları için Azure rol atama koşullarına yönelik eylemler ve öznitelikler.
Dekont
Bir Azure Depolama hesabı oluşturduğunuzda, Microsoft Entra Kimliği aracılığıyla verilere erişim izinleri otomatik olarak atanmamış olur. Kuyruk Depolama erişim için kendinize açıkça bir Azure rolü atamanız gerekir. Aboneliğiniz, kaynak grubunuz, depolama hesabınız veya kuyruğunuz 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 kuyruk kaynaklarına erişimi en dar kapsamdan başlayarak aşağıdaki düzeylerde kapsam olarak ayarlayabilirsiniz:
- Tek bir kuyruk. Bu kapsamda, rol ataması kuyruktaki iletilere ve kuyruk özelliklerine ve meta verilerine uygulanır.
- Depolama hesabı. Bu kapsamda, rol ataması tüm kuyruklara ve iletilerine uygulanır.
- Kaynak grubu. Bu kapsamda, rol ataması kaynak grubundaki tüm depolama hesaplarındaki tüm kuyruklara uygulanır.
- Abonelik. Bu kapsamda, bir rol ataması abonelikteki tüm kaynak gruplarındaki tüm depolama hesaplarındaki tüm kuyruklar 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 kuyruklara uygulanır.
Azure RBAC rol atamalarının kapsamı hakkında daha fazla bilgi için bkz . Azure RBAC kapsamını anlama.
Kuyruklar için Azure yerleşik rolleri
Azure RBAC, Microsoft Entra Id ve OAuth kullanarak kuyruk 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:
- Depolama Kuyruğu Verileri Katkıda Bulunanı: Azure kuyruklarına okuma/yazma/silme izinleri vermek için kullanın.
- Depolama Kuyruğu Verileri Okuyucusu: Azure kuyruklarına salt okuma izinleri vermek için kullanın.
- Depolama Kuyruğu Verileri İleti İşleyicisi: Azure Depolama kuyruklarındaki iletiler üzerinde göz atma, alma ve silme izinleri vermek için kullanın.
- Depolama Kuyruğu Verileri İleti Göndereni: Azure Depolama kuyruklarındaki iletiler üzerinde ekleme izinleri vermek için kullanın.
Güvenlik sorumlusuna Azure yerleşik rolünü atamayı öğrenmek için bkz . Kuyruk 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, güvenlik sorumlusunın kuyruk 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 bu hesaptaki kuyruk 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 kuyruk 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 Kuyruk 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 kuyruk 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 kuyruk 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.
Kuyruk 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 kuyruk 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 kuyruk verilerine erişmek için kuyruk 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 tarafından sağlanan yerleşik roller Depolama kuyruk 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. Microsoft Entra hesabıyla Azure portalında kullanıcılara veri erişimi izinleri atama hakkında daha fazla bilgi edinmek için bkz . Kuyruk verilerine erişim için Azure rolü atama.
Azure portalı, kuyruğa gittiğinizde hangi yetkilendirme düzeninin kullanıldığını gösterir. Portalda veri erişimi hakkında daha fazla bilgi için bkz . Azure portalında kuyruk verilerine erişimi yetkilendirmeyi 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:
- Azure CLI ile kuyruk verilerine erişimi yetkilendirmeyi seçme
- Kuyruk verilerine erişmek için Microsoft Entra kimlik bilgileriyle PowerShell komutlarını çalıştırma