Aracılığıyla paylaş


Tablo için Azure Cosmos DB güvenlik sözlüğü

Dağıtım kılavuzu sırasındaki geçerli konumun ('Kavramlar') diyagramı.

Şu konumlar da dahil olmak üzere dağıtım kılavuzu dizisinin diyagramı: Genel Bakış, Kavramlar, Hazırlama, Rol tabanlı erişim denetimi ve Başvuru. 'Kavramlar' konumu şu anda vurgulanmış durumda.

Bu makale, Tablo için Azure Cosmos DB'ye yönelik bu güvenlik kılavuzunda kullanılan ortak terminoloji sözlüğü içerir.

Rol tabanlı erişim denetimi

Rol tabanlı erişim denetimi, Azure'daki kaynaklara erişimi yönetmek için bir yöntemi ifade eder. Bu yöntem, belirli kimliklere bir veya daha fazla kaynağa sahip oldukları erişim düzeyini yöneten roller atanmasını temel alır. Rol tabanlı erişim denetimi, kimliklerin yalnızca görevlerini gerçekleştirmek için ihtiyaç duydukları en düşük ayrıcalıklı erişim düzeyine sahip olmasını sağlayan esnek bir ayrıntılı erişim yönetimi sistemi sağlar.

Daha fazla bilgi için bkz . Rol tabanlı erişim denetimine genel bakış.

Kimlik/Sorumlu

Kimlikler, Sisteminize erişim düzeyi gerekebilecek bazı varlıkları temsil eden Microsoft Entra içindeki nesnelere başvurur. Azure ve Microsoft Entra bağlamında kimlikler aşağıdaki varlık türlerinden birine başvurabilir:

Açıklama
İş yükü kimlikleri İş yükü kimliği, diğer hizmetlere veya kaynaklara erişmesi gereken bir yazılım iş yükünü temsil eder
İnsan kimlikleri İnsan kimliği, kiracınızda yerel olabilecek veya konuk olarak eklenebilen bir kullanıcıyı temsil eder
Yönetilen kimlikler Yönetilen kimlikler, Azure'da bir Azure hizmetinin kimliğini temsil eden ayrı kaynaklardır
Hizmet sorumluları Hizmet sorumlusu, esnek sayıda kimlik doğrulama senaryosunda kullanılabilen bir hizmet hesabıdır
Cihaz kimlikleri Cihaz kimliği, Microsoft Entra'da bir cihazla eşlenen bir nesnedir
Gruplar Gruplar, tek bir işlem olarak bir veya daha fazla kimlik erişimini yönetmek için kullanılan nesnelerdir

Daha fazla bilgi için bkz . Kimlikle ilgili temel bilgiler.

Role

Roller, erişimi ve izinleri zorunlu kılmanın birincil birimleridir. Bir kimliğe rol atarsınız ve rolün tanımı bu kimliğin hangi erişim düzeyine sahip olabileceğini belirler. Atamanın kapsamı, kimliğin tam olarak hangi erişime sahip olduğunu belirler.

Azure,çeşitli kaynaklara erişim vermek için kullanabileceğiniz büyük bir yerleşik roller kümesine sahiptir. Bu örneği ele alalım:

Değer
Rol CosmosBackupOperator
Tanım Microsoft.DocumentDB/databaseAccounts/backup/action & Microsoft.DocumentDB/databaseAccounts/restore/action
Scope Kaynak grubu

Bu örnekte size belirli bir kaynak grubu için rol atanır CosmosBackupOperator . Bu atama, söz konusu kaynak grubundaki herhangi bir Azure Cosmos DB hesabında veya restore eylemlerini gerçekleştirmenize backup erişim sağlar.

Önemli

Azure Cosmos DB gibi bazı Azure hizmetlerinin farklı Azure Resource Manager özelliklerini, Azure CLI komutlarını ve Azure PowerShell cmdLet'lerini kullanan kendi yerel rol tabanlı erişim denetimi uygulaması vardır. Rol tabanlı erişim denetimini yönetmek için genellikle kullandığınız komutlar Azure Cosmos DB veri düzlemi erişimiyle çalışmaz. Azure rol tabanlı erişim denetimi komutlarından bazıları Azure Cosmos DB denetim düzlemi erişimiyle çalışabilir.

Daha fazla bilgi için bkz. Yerleşik Azure rolleri

Rol tanımı

Rol tanımı, izin verilen ve izin verilmeyen denetim düzlemi ve veri düzlemi eylemlerinin listesini içeren bir JSON nesnesidir. Yerleşik rolden CosmosRestoreOperator kesilen bu örneği göz önünde bulundurun:

{
  "roleName": "CosmosRestoreOperator",
  "type": "Microsoft.Authorization/roleDefinitions",
  ...
  "permissions": [
    {
      "actions": [
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  ...
}

Bu tanımda, bu role atanmış bir kimlik bir restore eylem gerçekleştirebilir. Geri yükleme işlemi tamamlandıktan sonra kimlik, geri yüklemenin başarılı olduğunu doğrulamak için çeşitli kaynakları okuyabilir. için (joker karakter) işleci readnedeniyle * bu kaynakları okuyabileceğini belirleyebiliriz.

Daha fazla bilgi için bkz . rol tanımı kavramları.

Rol ataması

Rol ataması belirli bir Azure kaynağına kimlik erişimi verir. Rol atamaları aşağıdaki bileşenlerden oluşur:

Açıklama
Müdür Bu role hangi kimliğe atanır?
Rol Kimliğe atanan rol
Scope Atamanın hedef Azure kaynağı veya grubu
Ad/Açıklama Atamaları büyük ölçekte yönetmeyi kolaylaştıran meta veriler

İpucu

Rol tabanlı erişim denetiminde, karşılıklı olarak kullanılan kimlik ve sorumlu terimlerini görebilirsiniz.

Daha fazla bilgi için bkz . rol atama kavramları.

Eylemler

Eylemler, bir rolün hedef kaynak için sahip olduğu belirli izinleri tanımlar. Eylemler, genellikle kaynak türünü ve eylemin hangi izinlere sahip olduğunu ayrıntılı olarak belirten açıklayıcı bir ad içeren dizelerdir. Burada birkaç genel örnek verilmiştir:

Açıklama Uçak
Microsoft.DocumentDB/databaseAccounts/listKeys/action Yalnızca hesap anahtarlarını okuma Kontrol düzlemi
Microsoft.DocumentDB/databaseAccounts/backup/action yedekleme gerçekleştirme Kontrol düzlemi
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Var olan bir öğeyi tamamen değiştirme Veri düzlemi
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery NoSQL sorgusu yürütme Veri düzlemi

Eylemlerde (joker karakter) karakterler de bulunabilir * , bu nedenle her alt yetkiyi el ile ayrıntılandırmazsınız. Joker karakterler içeren eylemlere birkaç örnek aşağıda verilmiştir:

Açıklama
Microsoft.DocumentDb/databaseAccounts/* Azure Cosmos DB hesaplarını oluşturma ve yönetme
Microsoft.DocumentDB/*/read Herhangi bir kapsayıcıyı veya veritabanını okuma

Eylemler denetim düzlemi ve veri düzlemi olarak ayrılır. Denetim düzlemi kaynaklarında ve verileri etkileyebilecek eylemlerde ayrı ayrı eylemler tanımlamanız gerekir. Rol tanımında denetim düzlemi eylemleri özelliğini kullanır actions ve veri düzlemi eylemleri özelliğin dataActions içindedir. Ayrıca, ilgili notActions ve notDataActions özellikleri kullanarak bir kimliğin gerçekleştiremeyecekleri eylemleri de tanımlayabilirsiniz.

Not

Eylemlerin denetim ve veri düzlemine ayrılması, eski rol tanımlarından gelen joker karakter eylemlerinin verilere sınırsız ve kasıtsız erişime sahip olmasını önlemeye yönelik bir güvenlik önlemidir.

Daha fazla bilgi için bkz . denetim ve veri eylemleri.

En az ayrıcalık

"En az ayrıcalık" kavramı, tüm kullanıcıların yalnızca görevlerini veya işlerini gerçekleştirmek için ihtiyaç duydukları minimum erişim düzeyine sahip olmasını sağlamak için operasyonel en iyi uygulamayı ifade eder. Örneğin, veritabanından veri okuyan bir uygulama yalnızca veri deposuna okuma erişimine ihtiyaç duyar. Bu uygulamanın veri deposuna okuma ve yazma erişimi varsa, bunlarla sınırlı olmamak üzere birkaç şey gerçekleşebilir:

  • Uygulama verileri hatalı bir şekilde yok edebilir
  • Yetkisiz bir kullanıcı uygulamanın kimlik bilgilerine erişebilir ve verileri değiştirebilir

En az ayrıcalık uygulamasının uygulanması olası veri ihlallerinin kapsam dahilinde sınırlı olmasını sağlar. Bu uygulama, operasyonel güvenliği en üst düzeye çıkarırken kullanıcıların etkin kalmasını sağlar.

Daha fazla bilgi için bkz . göreve göre önerilen en az ayrıcalıklı roller.

Kontrol düzlemi

Denetim düzlemi erişimi, verileri yönetmeden Azure hizmetinin kaynaklarını yönetme özelliğini ifade eder. Örneğin, Azure Cosmos DB denetim düzlemi erişimi şunları içerebilir:

  • Tüm hesap ve kaynak meta verilerini okuma
  • Hesap anahtarlarını ve bağlantı dizesi okuma ve yeniden oluşturma
  • Hesap yedeklemeleri ve geri yükleme gerçekleştirme
  • Veri aktarımı işlerini başlatma ve izleme
  • Veritabanlarını ve kapsayıcıları yönetme
  • Hesap özelliklerini değiştirme

Önemli

Azure Cosmos DB'de yerel veri düzlemi rol tabanlı erişim denetimi tanımlarını ve atamalarını yönetmek için denetim düzlemi erişimlerine ihtiyacınız vardır. Azure Cosmos DB'nin veri düzlemi rol tabanlı erişim denetim mekanizması yerel olduğundan, tanımları ve atamaları oluşturmak ve bunları bir Azure Cosmos DB hesabında kaynak olarak depolamak için denetim düzlemi erişimine ihtiyacınız olacaktır.

Veri düzlemi

Veri düzlemi erişimi, hesaptaki kaynakları yönetme olanağı olmadan Bir Azure hizmeti içindeki verileri okuma ve yazma özelliğini ifade eder. Exmaple için Azure Cosmos DB veri düzlemi erişimi şunları içerebilir:

  • Bazı hesap ve kaynak meta verilerini okuma
  • Öğeleri oluşturma, okuma, güncelleştirme, düzeltme eki uygulama ve silme
  • NoSQL sorguları yürütme
  • Kapsayıcının değişiklik akışından okuma
  • Saklı yordamları yürütme
  • Çakışma akışındaki çakışmaları yönetme

Taşınabilir kimlik doğrulaması

Geliştirme aşamasında, yerel geliştirme ve üretim örnekleri için iki ayrı kimlik doğrulama mantığı kümesi yazmak yaygındır. Azure SDK ile tek bir teknik kullanarak mantığınızı yazabilir ve kimlik doğrulama kodunun geliştirme ve üretim aşamasında sorunsuz bir şekilde çalışmasını bekleyebilirsiniz.

Azure Kimlik istemci kitaplığı, Azure SDK'nın bir parçası olarak birden çok programlama dilinde kullanılabilir. Bu kitaplığı kullanarak, ortamınıza göre doğru kimlik bilgilerini bulmak için birden çok seçenekte akıllıca yol gösteren bir DefaultAzureCredential nesne oluşturabilirsiniz. Bu kimlik doğrulama seçenekleri şunlardır (sırayla):

  1. Ortam değişkeni olarak depolanan istemci gizli dizisi veya sertifikası
  2. Microsoft Entra İş Yükü Kimliği
  3. Kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimlik
  4. Visual Studio ayarlarından türetilen Azure kimlik bilgileri
  5. Visual Studio Code'un Azure Hesabı uzantısında kullanılan kimlik bilgileri
  6. Azure CLI'dan geçerli kimlik bilgileri
  7. Azure PowerShell'den geçerli kimlik bilgileri
  8. Azure Geliştirici CLI'sından geçerli kimlik bilgileri
  9. Oturum açmak için sistemin tarayıcısını başlatan etkileşimli bir oturum

Her modern Azure SDK kitaplığı, bir örneği veya temel türünü kabul eden ilgili istemci nesneleri veya sınıfları için bir DefaultAzureCredential oluşturucuyu destekler.

İpucu

Üretim kodunuzun hata ayıklamasını kolaylaştırmak ve daha öngörülebilir hale getirmek için geliştirme aşamasında kullanmayı DefaultAzureCredential ve uygulama dağıtıldıktan sonra gibi WorkloadIdentityCredential ManagedIdentityCredential daha belirli bir kimlik bilgileriyle geçiş yapmayı tercih edebilirsiniz. Bu sınıfların tümü, istemci başlatma mantığının bir parçası olarak birçok Azure SDK'sının beklediği sınıfı temel alır TokenCredential ve bu da geçiş yapmayı basitleştirir.

Benzersiz tanımlayıcı

Microsoft Entra'daki her kimliğin benzersiz bir tanımlayıcısı vardır. Bazen , veya principalIdolarak adlandırılan bu benzersiz tanımlayıcıyı idobjectIdgörürsünüz. Rol atamaları oluştururken, atamayla birlikte kullanacağınız kimliğin benzersiz tanımlayıcısına ihtiyacınız vardır.

Kapsam

Bir rol atadığınızda, hangi Azure kaynaklarına veya gruplarına erişim vereceğine karar vermeniz gerekir. Rol atamasının kapsamı, atamanın yapıldığı düzeyi tanımlar.

Örneğin:

  • Tek bir kaynak kapsamı yalnızca bu tekil kaynağa izinler uygular
  • Kaynak grubu düzeyinde ayarlanmış bir kapsam, izinleri gruptaki tüm ilgili kaynaklara uygular
  • Yönetim grubu veya abonelik düzeylerindeki kapsamlar tüm alt gruplara ve kaynaklara uygulanır

Azure rol tabanlı erişim denetiminde bir rol atadığınızda, bu atamanın kapsamını iş yükünüz için gerektiği kadar az kaynak içerecek şekilde ayarlamak idealdir. Örneğin, atamanın kapsamını bir kaynak grubuna ayarlayabilirsiniz. Bu kaynak grubu kapsamı, kaynak grubu içindeki tüm Azure Cosmos DB kaynaklarını içerir:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>

Alternatif olarak, kapsamı tek bir Azure kaynağına ayarlayabilir ve izin atamanızı daha ayrıntılı ve dar hale getirebilirsiniz. Bu örnekte, kapsamı daraltmak için Azure Cosmos DB kaynağının sağlayıcısı ve adı kullanılır:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>

Daha fazla bilgi için bkz . Azure rol tabanlı erişim denetimi kapsamı.

Kapsam (Azure Cosmos DB yerel)

Azure Cosmos DB'nin rol tabanlı erişim denetiminin yerel uygulamasında kapsam, iznin uygulanmasını istediğiniz hesaptaki kaynakların ayrıntı düzeyini ifade eder.

En yüksek düzeyde, en büyük kapsamı kullanarak tüm hesaba veri düzlemi rol tabanlı erişim denetimi atamasını kapsamlayabilirsiniz. Bu kapsam, hesaptaki tüm veritabanlarını ve kapsayıcıları içerir:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/

Alternatif olarak, veri düzlemi rol atamanızın kapsamını varsayılan veritabanına da ayarlayabilirsiniz:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/TablesDB

Önemli

Varsayılan veritabanı olan TablesDB, büyük/küçük harfe duyarlıdır. Bir kapsamda yanlış büyük/küçük harf kullanırsanız, kapsam izin verilen en büyük kapsama (hesap düzeyi) yuvarlanır.

Son olarak, atamanın kapsamını en ayrıntılı kapsam olan tek bir kapsayıcıya (tablo) ayarlayabilirsiniz:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/TablesDB/colls/<container-name>

Sonraki adım