Hızlı Başlangıç: Dependabot ve Copacetic ile kapsayıcı görüntüsü bağımlılıklarını güncelleştirme ve güvenliğini sağlama
Bu hızlı başlangıçta, yazılım bağımlılık güncelleştirmelerini otomatikleştirmenize ve güvenli bir tedarik zinciri ortamında kapsayıcı görüntülerinin güvenliğini sağlamanıza yardımcı olacak Dependabot ve Copacetic'i yapılandırmak için gereken adımlara tanıtılacaksınız. Bu araçları kullanarak kapsayıcı görüntülerinizin her zaman güncel ve güvenli olmasını sağlayabilirsiniz.
Bu hızlı başlangıçta şunları yapmayı öğrenirsiniz:
- Dependabot kullanarak kapsayıcı görüntüsü bağımlılıklarını ve güvenliğini güncelleştirin.
- Dependabot, kapsayıcı görüntüleri bağımlılıklarınızı güncel tutma sürecini otomatikleştirerek güvenlik açığı riskini azaltır.
- Copacetic kullanarak kapsayıcı görüntülerini sürekli izleme, tarama ve düzeltme eki uygulama.
- Copacetic, kapsayıcı görüntülerinizin güvenli olmasını ve bilinen güvenlik açıklarına karşı düzeltme eki uygulamalarını sağlayarak sürekli izleme ve tarama sağlar.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure CLI'nın en son sürümü, aboneliğiniz için yüklü ve yapılandırılmıştır.
- Aboneliğinizde mevcut bir Azure Container Registry (ACR).
Dependabot kullanarak kapsayıcı görüntüsü bağımlılıklarını ve güvenliğini güncelleştirme
Dependabot , yazılım bağımlılıklarını güncel tutma sürecini otomatik hale getiren bir araçtır. Deponuzu güncel olmayan bağımlılıklar için tarayarak ve bunları en son sürüme güncelleştirmek için çekme istekleri oluşturarak çalışır. Bağımlılıklarınıza yönelik güncelleştirmeleri günlük olarak denetler ve bunları güncelleştirmek için çekme istekleri oluşturur. Dependabot'u Docker görüntüleri de dahil olmak üzere tüm bağımlılık türleri için çekme istekleri oluşturacak şekilde yapılandırabilirsiniz. En son güvenlik yamalarını almak ve güvenlik risklerini azaltmak için Dockerfiles, Kubernetes yaml dosyaları ve Helm grafik değerleri yaml dosyalarınızdaki bağımlılıkları otomatik olarak azaltmak için dependabot kullanmanızı öneririz.
Dependabot'ı GitHub ile kullanma
Dependabot tarafından tetiklenen çekme isteklerini etkili bir şekilde yönetme, Dependabot'un performansını geliştirmek için GitHub Actions'ı kullanma ve yaygın Dependabot hatalarını giderme yönergelerini ve önerileri izleyin.
- Dependabot'ı GitHub ile burada ayarlayın.
Azure DevOps ile Dependabot kullanma
Azure DevOps ile Dependabot'u yapılandırmak ve kapsayıcı görüntüsü bağımlılıklarınızın en son sürümler ve güvenlik geliştirmeleriyle güncel kalmasını sağlamak için yönergeleri izleyin.
- İzin Ver: Adıyla
YOUR-PROJECT-NAME Build Service (YOUR-ORGANIZATION-NAME)
bir hizmet hesabı oluşturun ve aşağıdaki izinleri verin:
- Göndermeye Zorla
- Çekme isteklerine katkıda bulunma
- Dal oluşturma
ve YOUR-ORGANIZATION-NAME
değerlerini projenizin ve kuruluşunuzun gerçek adlarıyla değiştirdiğinden YOUR-PROJECT-NAME
emin olun.
Dependabot'ı yapılandırma: Dependabot'ı yapılandırmak için deponuza bir
dependabot.yml
yapılandırma dosyası ekleyin. Yapılandırma dosyanızın nasıl görünebileceğine bir örnek aşağıda verilmişti:version: 2 updates: - package-ecosystem: "docker" directory: "/" assignees: - "dependabot"
Bu yapılandırma, Docker kullanan bir proje için Dependabot'ı ayarlar ve Docker dosyalarının bulunduğu kök dizinin ("/") olduğunu belirtir ve güncelleştirmeleri işlemek için Dependabot atar. Yapılandırmayı projenizin gereksinimlerine uyacak şekilde özelleştirebilirsiniz.
Azure DevOps İşlem Hattı oluşturma: Azure DevOps İşlem Hattı oluşturmak için deponuza aşağıdaki içeriğe sahip bir
azure-pipeline.yml
dosya ekleyin:schedules: - cron: '0 14 * * *' displayName: 'Every day at 7am PST' branches: include: [main] always: true trigger: none jobs: - job: steps: - script: | git clone https://github.com/dependabot/dependabot-core.git cd dependabot-core DOCKER_BUILDKIT=1 docker build \ --build-arg "USER_UID=$(id -u)" \ --build-arg "USER_GID=$(id -g)" \ -t "dependabot/dependabot-core" . cd .. displayName: build dependabot-core Docker image - script: | git clone https://github.com/dependabot/dependabot-script.git cd dependabot-script docker run -v "$(pwd):/home/dependabot/dependabot-script" -w /home/dependabot/dependabot-script dependabot/dependabot-core bundle install -j 3 --path vendor displayName: install dependencies - script: | #!/bin/bash SYSTEM_COLLECTIONURI_TRIM=`echo "${SYSTEM_COLLECTIONURI:22}"` PROJECT_PATH="$SYSTEM_COLLECTIONURI_TRIM$SYSTEM_TEAMPROJECT/_git/$BUILD_REPOSITORY_NAME" echo "path: $PROJECT_PATH" docker run -v "$(pwd)/dependabot-script:/home/dependabot/dependabot-script" \ -w '/home/dependabot/dependabot-script' \ -e AZURE_ACCESS_TOKEN=$(System.AccessToken) \ -e PACKAGE_MANAGER=docker \ -e PROJECT_PATH=$PROJECT_PATH \ -e DIRECTORY_PATH=/ \ -e OPTIONS="$OPTIONS" \ dependabot/dependabot-core bundle exec ruby ./generic-update-script.rb displayName: "run dependabot" env: OPTIONS: | { "kubernetes_updates": true }
İşlem hattını çalıştırın: Yukarıdaki
azure-pipelines.yaml
dosyadan yeni ADO işlem hattı oluşturun ve doğrulayın.
Dependabot aşağıdakiler gibi çeşitli senaryolarda kapsayıcı görüntüsü bağımlılıklarını güncelleştirebilir:
- Dockerfile
- Kubernetes YAML
- Helm values.yaml
Not
Söz dizimi Dependabot'un yapılandırma dosyalarınızdaki kapsayıcı görüntüsü bağımlılıklarını tanımlamasına ve güncelleştirmesine olanak tanıyarak en son sürümlerle ve güvenlik düzeltme ekleriyle güncel kalmanızı sağlar.
Yapılandırma dosyalarınızda görüntü belirtirken aşağıdaki söz dizimini kullanın:
# Dockerfile
foo:
image:
repository: sql/sql
tag: 1.2.3
registry: docker.io
# Helm values.yaml
foo:
image:
repository: sql/sql
tag: 1.2.3
registry: docker.io
Alternatif olarak, için Helm values.yaml
alanını kullanarak version
görüntü sürümünü belirtebilirsiniz:
foo:
image:
repository: sql/sql
version: 1.2.3
Copacetic kullanarak kapsayıcı görüntülerini sürekli izleme, tarama ve düzeltme eki uygulama
Copacetic (copa), popüler tarayıcı araçlarından gelen güvenlik açığı tarama sonuçları göz önüne alındığında kapsayıcı görüntülerinde Linux işletim sistemi paketi güvenlik açıklarına doğrudan düzeltme eki ekleyen, Microsoft destekli bir CNCF açık kaynak projesidir. Copacetic, tam yeniden derleme için yukarı akışa geçmeden kapsayıcılara hızla yama uygulamanıza olanak tanır. Bu, kapsayıcı görüntülerinin üretime hızla yeniden dağıtabilmesine yardımcı olur. Copacetic yalnızca Linux işletim sistemi güvenlik açıklarına yöneliktir. Uygulama düzeyinde güvenlik açıkları için, görüntü oluşturulmadan önce düzeltme eklerinin yapılması gerekir.
Copacetic kullanma
Copacetic kullanmaya yönelik örnek bir Azure DevOps işlem hattı yapılandırma dosyası için Örnek ADO İşlem Hattı'nı gözden geçirin. İşlem hattı, Copacetic'i CI/CD iş akışınızla tümleştirerek güvenlik açıkları için kapsayıcı görüntülerinin sürekli izlenmesine, taranmasına ve düzeltme ekine izin verecek şekilde tasarlanmıştır.
Copacetic, Copacetic Action kullanılarak görüntü güvenlik açıklarına düzeltme eki uygulamak için Github Actions iş akışlarıyla da tümleştirilebilir. Bu eylem, ilişkili güvenlik açığı raporlarını kullanarak bir depo için belirlenen görüntü kümesine düzeltme eki uygular.