Öğretici: Azure Cosmos DB kimlik bilgilerini Azure Key Vault ile depolama ve kullanma

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Önemli

Azure Cosmos DB'ye erişmek için sistem tarafından atanan yönetilen kimlik kullanılması önerilir. Hem yönetilen kimlik çözümü hem de sertifika tabanlı çözüm ihtiyaçlarınızı karşılamıyorsa, lütfen bu makaledeki Azure Key Vault çözümünü kullanın.

Veritabanınız olarak Azure Cosmos DB kullanıyorsanız, bir SDK, API uç noktası ve birincil veya ikincil anahtar kullanarak veritabanlarına, kapsayıcıya ve öğelere bağlanırsınız.

Uç nokta URI'sini ve hassas okuma-yazma anahtarlarını doğrudan uygulama kodu veya yapılandırma dosyası içinde depolamak iyi bir uygulama değildir. İdeal olarak, bu veriler konak içindeki ortam değişkenlerinden okunur. Azure App Service'de uygulama ayarları, geliştiricilerin bu kimlik bilgilerini güvenli olmayan bir düz metin biçiminde depolamasına gerek kalmadan Azure Cosmos DB hesabınız için çalışma zamanı kimlik bilgilerini eklemenize olanak tanır.

Azure Key Vault, kimlik bilgilerine yönetilen Azure App Service erişim izni verirken bu kimlik bilgilerini güvenli bir şekilde depolamanıza olanak tanıyarak bu en iyi yöntemi daha da yineler. Azure App Service kimlik bilgilerinizi Azure Key Vault'dan güvenli bir şekilde okur ve bu kimlik bilgilerini çalışan uygulamanıza ekler.

Geliştiriciler bu en iyi uygulamayla Azure Cosmos DB öykünücüsü gibi araçların kimlik bilgilerini depolayabilir veya geliştirme sırasında Azure Cosmos DB'yi ücretsiz deneyin . Ardından, operasyon ekibi çalışma zamanında doğru üretim ayarlarının eklendiğini güvence altına alabilir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Azure Key Vault örneği oluşturma
  • Azure Cosmos DB kimlik bilgilerini anahtar kasasına gizli dizi olarak ekleme
  • Azure App Service kaynağı oluşturup kaydedin ve "okuma anahtarı" izinleri verin
  • anahtar kasası gizli dizilerini App Service kaynağına ekleme

Not

Bu öğretici ve örnek uygulama NoSQL için Azure Cosmos DB hesabı kullanır. Diğer API'leri kullanarak aynı adımların çoğunu gerçekleştirebilirsiniz.

Önkoşullar

Başlamadan önce: Azure Cosmos DB kimlik bilgilerini alma

Başlamadan önce mevcut hesabınızın kimlik bilgilerini alırsınız.

  1. Mevcut NoSQL için Azure Cosmos DB hesabının Azure portal sayfasına gidin.

  2. NoSQL için Azure Cosmos DB hesabı sayfasında Anahtarlar gezinti menüsü seçeneğini belirleyin.

    Azure Cosmos DB SQL API hesabı sayfasının ekran görüntüsü. Gezinti menüsünde Tuşlar seçeneği vurgulanır.

  3. URI ve BİrİnCİl ANAHTAR alanlarındaki değerleri kaydedin. Bu değerleri bu öğreticinin ilerleyen bölümlerinde kullanacaksınız.

    Azure Cosmos DB SQL API hesabı için çeşitli kimlik bilgilerini içeren Anahtarlar sayfasının ekran görüntüsü.

Azure Key Vault kaynağı oluşturma

İlk olarak, NoSQL kimlik bilgileri için API'nizi depolamak üzere yeni bir anahtar kasası oluşturun.

  1. Azure Portal’ında oturum açın.

  2. Kaynak > oluştur Güvenlik > Key Vault'i seçin.

  3. Anahtar kasası oluştur sayfasında aşağıdaki bilgileri girin:

    Ayar Açıklama
    Abonelik Bu Azure Cosmos hesabı için kullanmak istediğiniz Azure aboneliğini seçin.
    Kaynak grubu Bir kaynak grubu seçin veya Yeni oluştur seçeneğini belirleyin ve yeni kaynak grubu için benzersiz bir ad girin.
    Anahtar kasası adı Anahtar kasanız için genel olarak benzersiz bir ad girin.
    Bölge Azure Cosmos DB hesabınızın barındırılacağı coğrafi konumu seçin. Verilere en hızlı erişimi sağlamak için kullanıcılarınıza en yakın olan konumu kullanın.
    Fiyatlandırma katmanı Standart'ı seçin.
  4. Kalan ayarları varsayılan değerlerine bırakın.

  5. Gözden geçir ve oluştur’u seçin.

  6. Sağladığınız ayarları gözden geçirin ve oluştur'u seçin. Hesabın oluşturulması birkaç dakika sürer. Devam etmeden önce portal sayfasının Dağıtımınız tamamlandı ifadesini görüntülemesini bekleyin.

Key Vault Azure Cosmos DB erişim anahtarları ekleme

Şimdi Azure Cosmos DB kimlik bilgilerinizi anahtar kasasında gizli dizi olarak depolayın.

  1. Azure Key Vault kaynak sayfasına gitmek için Kaynağa git'i seçin.

  2. Azure Key Vault kaynak sayfasında Gizli Diziler gezinti menüsü seçeneğini belirleyin.

  3. Menüden Oluştur/İçeri Aktar'ı seçin.

    Anahtar kasası menüsündeki Oluştur/İçeri Aktar seçeneğinin ekran görüntüsü.

  4. Gizli dizi oluştur sayfasında aşağıdaki bilgileri girin:

    Ayar Açıklama
    Karşıya yükleme seçenekleri El ile
    Ad cosmos-endpoint
    Gizli dizi değeri Bu öğreticinin önceki bölümlerinde kopyaladığınız URI'yi girin.

    URI gizli dizisinin ayrıntılarını içeren Azure portal Gizli dizi oluştur iletişim kutusunun ekran görüntüsü.

  5. Yeni cosmos-endpoint gizli dizisini oluşturmak için Oluştur'u seçin.

  6. Menüden Oluştur/İçeri Aktar'ı yeniden seçin. Gizli dizi oluştur sayfasında aşağıdaki bilgileri girin:

    Ayar Açıklama
    Karşıya yükleme seçenekleri El ile
    Ad cosmos-readwrite-key
    Gizli dizi değeri Bu öğreticinin önceki bölümlerinde kopyaladığınız BİrİnCİl ANAHTAR'ı girin.

    Azure portal bir BİRİnCİl ANAHTAR gizli dizisinin ayrıntılarını içeren Gizli dizi oluştur iletişim kutusunun ekran görüntüsü.

  7. Yeni cosmos-readwrite-key gizli dizisini oluşturmak için Oluştur'u seçin.

  8. Gizli diziler oluşturulduktan sonra, bunları Gizli Diziler sayfasındaki gizli diziler listesinde görüntüleyin.

    Bir anahtar kasasının gizli dizi listesinin ekran görüntüsü.

  9. Her anahtarı seçin, en son sürümü seçin ve gizli dizi tanımlayıcısını kopyalayın. Bu öğreticinin devamında cosmos-endpoint ve cosmos-readwrite-key gizli dizileri için tanımlayıcıyı kullanacaksınız.

    İpucu

    Gizli dizi tanımlayıcısı bu biçimde https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>olacaktır. Örneğin, anahtar kasasının adı msdocs-key-vault ise, anahtarın adı cosmos-readwrite-key ve 83b995e363d947999ac6cf487ae0e12e; ardından gizli dizi tanımlayıcısı olacaktır https://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e.

    cosmos-readwrite-key adlı bir anahtar kasası gizli dizisinin gizli dizi tanımlayıcısının ekran görüntüsü.

Azure Web Uygulaması oluşturma ve Azure Key Vault ile kaydetme

Bu bölümde yeni bir Azure Web Uygulaması oluşturun, örnek bir uygulama dağıtın ve ardından Web Uygulamasının yönetilen kimliğini Azure Key Vault'a kaydedin.

  1. cosmos-db-nosql-dotnet-sample-web-environment-variables şablonunu kullanarak yeni bir GitHub deposu oluşturun.

  2. Azure portal Kaynak > oluştur Web > Uygulaması'nı seçin.

  3. Web Uygulaması Oluştur sayfasında ve Temel Bilgiler sekmesinde aşağıdaki bilgileri girin:

    Ayar Açıklama
    Abonelik Bu Azure Cosmos hesabı için kullanmak istediğiniz Azure aboneliğini seçin.
    Kaynak grubu Bir kaynak grubu seçin veya Yeni oluştur seçeneğini belirleyin ve yeni kaynak grubu için benzersiz bir ad girin.
    Ad Web uygulamanız için genel olarak benzersiz bir ad girin.
    Yayımla Kod’u seçin.
    Çalışma zamanı yığını .NET 6 (LTS) öğesini seçin.
    İşletim Sistemi Windows'ı seçin.
    Bölge Azure Cosmos DB hesabınızın barındırılacağı coğrafi konumu seçin. Verilere en hızlı erişimi sağlamak için kullanıcılarınıza en yakın olan konumu kullanın.
  4. Kalan ayarları varsayılan değerlerine bırakın.

  5. İleri: Dağıtım'ı seçin.

  6. Dağıtım sekmesinde aşağıdaki bilgileri girin:

    Ayar Açıklama
    Sürekli dağıtım Etkinleştir’i seçin.
    GitHub hesabı Yetki ver'i seçin. Azure'a yeni oluşturduğunuz GitHub deponuzu okuma izni vermek için GitHub hesabı yetkilendirme istemlerini izleyin.
    Kuruluş Yeni GitHub deponuz için kuruluşu seçin.
    Depo Yeni GitHub deponuzun adını seçin.
    Dal Ana öğesini seçin.
  7. Gözden geçir ve oluştur’u seçin.

  8. Sağladığınız ayarları gözden geçirin ve oluştur'u seçin. Hesabın oluşturulması birkaç dakika sürer. Devam etmeden önce portal sayfasının Dağıtımınız tamamlandı ifadesini görüntülemesini bekleyin.

  9. Web uygulamasının başlangıçta web uygulamasına dağıtılması için birkaç dakika daha beklemeniz gerekebilir. Azure Web App kaynak sayfasında Gözat'ı seçerek uygulamanın varsayılan durumunu görün.

    Web uygulamasının kimlik bilgileri olmadan varsayılan durumundaki ekran görüntüsü.

  10. Kimlik gezinti menüsü seçeneğini belirleyin.

  11. Kimlik sayfasında Sistem tarafından atanan yönetilen kimlik için Açık'ı ve ardından Kaydet'i seçin.

    Kimlik sayfasından sistem tarafından atanan yönetilen kimliğin etkinleştirildiğinin ekran görüntüsü.

Azure web uygulaması ayarları olarak Azure Key Vault gizli dizilerini ekleme

Son olarak, anahtar kasanızda depolanan gizli dizileri web uygulamasının içinde uygulama ayarları olarak ekleyin. Uygulama ayarları da kimlik bilgilerini düz metinde depolamadan çalışma zamanında uygulamaya ekler.

  1. Azure portal anahtar kasası sayfasına dönün. Gezinti menüsünden Erişim ilkeleri'ni seçin.

  2. Erişim ilkeleri sayfasında menüden Oluştur'u seçin.

    Erişim ilkeleri menüsündeki Oluştur seçeneğinin ekran görüntüsü.

  3. Erişim ilkesi oluştur sayfasının İzinler sekmesinde Gizli dizi izinleri bölümünde Al seçeneğini belirleyin. İleri’yi seçin.

    Gizli dizi izinleri için Get izninin etkinleştirildiğinin ekran görüntüsü.

  4. Sorumlu sekmesinde, bu öğreticide daha önce oluşturduğunuz web uygulamasının adını seçin. İleri’yi seçin.

    bir izne atanan web uygulaması yönetilen kimliğinin ekran görüntüsü.

    Not

    Bu örnek ekran görüntüsünde, web uygulaması msdocs-dotnet-web olarak adlandırılmıştır.

  5. Uygulama sekmesini atlamak için tekrar İleri'yi seçin. Gözden geçir + oluştur sekmesinde, sağladığınız ayarları gözden geçirin ve oluştur'u seçin.

  6. Azure portal web uygulaması sayfasına dönün. Gezinti menüsünden Yapılandırma'ya tıklayın.

  7. Yapılandırma sayfasında Yeni uygulama ayarı'nı seçin. Uygulama ayarı ekle/düzenle iletişim kutusunda aşağıdaki bilgileri girin:

    Ayar Açıklama
    Ad CREDENTIALS__ENDPOINT
    Key Bu öğreticide daha önce oluşturduğunuz anahtar kasanızda cosmos-endpoint gizli dizisinin gizli dizi tanımlayıcısını alın. Tanımlayıcıyı şu biçimde girin: @Microsoft.KeyVault(SecretUri=<secret-identifier>).

    İpucu

    Ortam değişkeninin tek bir alt çizgi yerine çift alt çizgi (__) değerine sahip olduğundan emin olun. Çift alt çizgi, tüm platformlarda .NET tarafından desteklenen bir anahtar sınırlayıcıdır. Daha fazla bilgi için bkz. ortam değişkenleri yapılandırması.

    Not

    Örneğin, gizli dizi tanımlayıcısı ise https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07, başvuru olacaktır @Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07).

    Anahtar kasası gizli dizisine başvuran yeni bir uygulama ayarının bulunduğu Uygulama ayarı ekle/düzenle iletişim kutusunun ekran görüntüsü.

  8. Yeni uygulama ayarını kalıcı hale getirmek için Tamam'ı seçin

  9. Yeni uygulama ayarı'nu yeniden seçin. Uygulama ayarı ekle/düzenle iletişim kutusunda aşağıdaki bilgileri girin ve Tamam'ı seçin:

    Ayar Açıklama
    Ad CREDENTIALS__KEY
    Key Bu öğreticide daha önce oluşturduğunuz anahtar kasanızda cosmos-readwrite-key gizli dizisinin gizli dizi tanımlayıcısını alın. Tanımlayıcıyı şu biçimde girin: @Microsoft.KeyVault(SecretUri=<secret-identifier>).
  10. Yapılandırma sayfasına geri dönüp Kaydet'i seçerek web uygulamasının uygulama ayarlarını güncelleştirin.

    Yapılandırma sayfasının menüsündeki Kaydet seçeneğinin ekran görüntüsü.

  11. Web uygulamasının yeni uygulama ayarlarıyla yeniden başlatılması için birkaç dakika bekleyin. Bu noktada, yeni uygulama ayarları bunların bir Anahtar Kasası Başvurusu olduğunu göstermelidir.

    Bir web uygulamasındaki iki uygulama ayarında Anahtar kasası Başvurusu atamasının ekran görüntüsü.

  12. Gezinti menüsünden Genel Bakış'ı seçin. Uygulamayı doldurulmuş kimlik bilgileriyle görmek için Gözat'ı seçin.

    NoSQL hesabı kimlik bilgileri için geçerli Azure Cosmos DB ile web uygulamasının ekran görüntüsü.

Sonraki adımlar