Linux ve konteynerler üzerinde içerik kullanılabilirlik grupları için makine anahtarını hazırlama

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu makalede, kapsanan bir kullanılabilirlik grubunda (AG) Linux üzerinde çalışan SQL Server için bir makine anahtarının nasıl hazırlandığına ilişkin bir örnek sağlanır.

Kapsanan AG, şu desteği sağlayan bir kullanılabilirlik grubudur:

  • Örnek düzeyine ek olarak AG düzeyinde meta veri nesnelerini (kullanıcılar, oturum açma bilgileri, izinler, SQL Server Aracısı işleri vb.) yönetme.

  • AG içindeki özelleştirilmiş bağımsız sistem veritabanları.

Bu makaledeki örnekler Linux kapsayıcılarında SQL Server'ı hedefler, ancak Linux üzerinde SQL Server için aynı adımları kullanabilir, fiziksel makinelerde, sanal makinelerde ve Kubernetes tabanlı bir dağıtımda çalıştırabilirsiniz.

Dikkat

Bu yönergeler yalnızca kapsanan kullanılabilirlik grupları için kullanılmalıdır. Kapsanan AG'yi tüm çoğaltmalarda ortak bir makine anahtarıyla yapılandırdığınızda, önce mevcut bir şifreleme hiyerarşisi olmadığından emin olun (örneğin, saydam veri şifrelemesi, sütun düzeyinde şifreleme veya anahtar yönetimi gerektiren güvenlikle ilgili başka bir özellik). Makine anahtarının değiştirilmesi şifrelemeyi bozabilir ve veri kaybına neden olabilir. Yapılandırmadan sonra, güvenlik nedeniyle şifreleme hiyerarşisini oluşturmaktan veya değiştirmekten kaçının.

Makine anahtarına genel bakış

Linux üzerinde SQL Server'da, makine anahtarı iletişim ve verilerin güvenliğini sağlamada önemli bir rol oynar. Aşağıdaki tabloda birincil işlevleri açıklanmaktadır.

İşlev Açıklama
Şifreleme ve şifre çözme Makine anahtarı, AG'deki düğümler arasında değiştirilen verileri şifrelemek ve şifresini çözmek için kullanılır.
Kimlik Doğrulaması Ag'deki birincil ve ikincil çoğaltmalar arasındaki iletişimin kimliğini doğrulamaya yardımcı olur
Güvenlik Yetkisiz erişimi önlemek için makine anahtarı ve ilişkili sertifikaların korunması gerekir

Linux üzerinde SQL Server 2022 (16.x) ile çalışırken ve AG'ler içerdiğinde, makine anahtarlarını SQL Server çoğaltmaları arasında eşitlemeniz gerekir. Bu işlem, kapsanan master veritabanındaki hizmet ana anahtarının (SMK) şifre çözme ve şifreleme işlemleri için kullanılmasını sağlar.

Tek başına barındırıcı üzerinde özel makine anahtarını çalıştırmak için SQL Server kapsayıcısını hazırlayın.

Aşağıdaki yönergelerde, base64 formatında yeni bir makine anahtarı oluşturma örneği gösterilmektedir.

  1. Aşağıdaki betiği kullanarak OpenSSL aracılığıyla machine-key.bin adlı bir dosyaya bir makine anahtarı dosyası oluşturun.

    openssl rand -out machine-key.bin 44
    printf '\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | dd of=machine-key.bin bs=1 seek=0 count=12 conv=notrunc
    cat machine-key.bin | base64
    

    Önceki komut dosyası şu adımları gerçekleştirir:

    1. adlı machine-key.bin, rastgele veriler içeren 44 baytlık bir ikili dosya oluşturun.
    2. Sabit bir başlıkla ilk 12 bayt'ın üzerine yaz. Bu gelecekte değişebilir.
    3. machine-key.bin öğesini base64 formatında kodlayın ve konsola yazdırın.
  2. Dosyayı SQL Server kapsayıcısının makine anahtarına takarak kapsayıcıyı çalıştırın.

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=yourpassword" -p 14331:1433 --name sqlcontainer --hostname sqlcontainer -v ~/machine-key.bin:/var/opt/mssql/secrets/machine-key -d mcr.microsoft.com/mssql/server:2022-latest
    
  3. Ana makinedeki machine-key.bin'nin, önceki adımda dağıtılan SQL Server container'ı tarafından kullanılan machine-key.bin ile aynı olduğunu doğrulayın.

    cat machine-key.bin | base64
    

    Örnek çıktı şu şekildedir:

    AQAAAAAAAAAAAAAA//////////////////////////////////////////8=
    
  4. Kapsayıcının içinde anahtarı doğrulayın. İlk olarak, kapsayıcıdaki etkileşimli bir terminale bağlanın.

    docker exec -it sqlcontainer "bash"
    

    Ardından anahtarı doğrulayın.

    cat machine-key | base64
    

    Örnek çıktı şu şekildedir:

    AQAAAAAAAAAAAAAA//////////////////////////////////////////8=
    

İçerilen AG'nizde çoğaltma olarak kullanmayı planladığınız tüm SQL Server kapsayıcı dağıtımlarında aynı adımları kullanabilirsiniz. Aynı makine anahtarını kullanmanız ve SQL Server kapsayıcı dağıtımlarının her biri için farklı makine anahtarları oluşturmamalısınız.