لماذا يُعدّ توقيع صور الحاويات أمرًا مهمًا
في كل مرة تسحب فيها صورة حاوية وتنشرها في بيئة الإنتاج، فإنك تمنح ثقة ضمنية لهذا المُخرَج. لكن كيف تتحقق من أن الصورة لم يتم التلاعب بها؟ وكيف تتأكد أنها بُنيت فعلاً بواسطة مسار CI/CD الخاص بك وليس من قبل مهاجم اخترق سجل الحاويات؟
يحل توقيع صور الحاويات هذه المشكلة عن طريق إرفاق توقيع تشفيري بصورك. قبل النشر، يمكن لمُنسّق الحاويات أو وحدة التحكم في القبول التحقق من هذا التوقيع، مما يضمن دخول الصور الموثوقة والمصادق عليها فقط إلى بيئتك. يُعدّ هذا ركيزة أساسية لـأمن سلسلة توريد البرمجيات ومتطلبًا في أُطر عمل مثل SLSA وNIST SSDF.
لكن أدوات التوقيع ليست متساوية. الأساليب الثلاثة السائدة اليوم — Cosign (جزء من مشروع Sigstore)، وNotation (عميل Notary v2)، وGPG (الأسلوب التقليدي) — تأتي كل منها بمقايضات مختلفة جذريًا في إدارة المفاتيح، والتكامل مع CI/CD، والتوافق مع النظام البيئي.
في هذا الدليل، سنُجري مقارنة عملية ومعمّقة بين الأدوات الثلاث حتى تتمكن من اتخاذ القرار الصحيح لمسارات عملك.
Cosign ونظام Sigstore البيئي
نظرة عامة
Cosign هي أداة توقيع صور الحاويات من مشروع Sigstore، وهو الآن مشروع متخرّج تحت مؤسسة Linux Foundation. مهمة Sigstore هي جعل توقيع البرمجيات شائعًا عبر إزالة أكبر عائق: إدارة المفاتيح.
يُخزّن Cosign التوقيعات كمُخرجات OCI مباشرة بجانب الصورة الموقّعة في نفس السجل. وهذا يعني أنه لا يوجد نظام تخزين توقيعات منفصل يجب صيانته — فسجل الحاويات الحالي (Docker Hub، GitHub Container Registry، AWS ECR، Google Artifact Registry، إلخ) يؤدي دورًا مزدوجًا.
التوقيع بدون مفاتيح مع Fulcio وRekor
الميزة الأكثر ثورية في Cosign هي التوقيع بدون مفاتيح. بدلاً من إدارة مفاتيح توقيع طويلة الأمد، يتكامل Cosign مع خدمتين:
- Fulcio — سلطة شهادات تُصدر شهادات توقيع قصيرة الأمد بناءً على هوية OpenID Connect (OIDC). في سياق CI/CD، يكون هذا عادةً رمز الهوية من مزوّد المسار (GitHub Actions OIDC، GitLab CI OIDC، إلخ).
- Rekor — سجل شفافية غير قابل للتغيير يُسجّل كل حدث توقيع. يوفر هذا مسار تدقيق مقاوم للتلاعب يوضح من وقّع ماذا ومتى.
مع التوقيع بدون مفاتيح، يبدو سير العمل كالتالي:
- يطلب مسار CI الخاص بك رمز OIDC من مزوّد المسار.
- يُقدّم Cosign هذا الرمز إلى Fulcio، الذي يُصدر شهادة قصيرة الأمد تربط هوية المسار بزوج مفاتيح مؤقت.
- يوقّع Cosign ملخص الصورة بالمفتاح الخاص المؤقت.
- يتم تسجيل التوقيع والشهادة في سجل الشفافية Rekor.
- يتم التخلص من المفتاح الخاص المؤقت — فهو لم يكن موجودًا سوى لثوانٍ.
يُزيل هذا فئة كاملة من المشاكل المتعلقة بتدوير المفاتيح وتخزينها واختراقها. لا يوجد سر طويل الأمد يجب حمايته.
التوقيع القائم على المفاتيح
يدعم Cosign أيضًا التوقيع التقليدي بزوج مفاتيح للبيئات التي لا يكون فيها التوقيع بدون مفاتيح ممكنًا (الشبكات المعزولة، المتطلبات التنظيمية لحفظ مفاتيح محددة). تُنشئ زوج مفاتيح باستخدام cosign generate-key-pair وتوقّع بـ cosign sign --key cosign.key.
مثال على التكامل مع CI/CD: GitHub Actions
# .github/workflows/sign.yml
jobs:
sign:
runs-on: ubuntu-latest
permissions:
id-token: write # Required for keyless signing
packages: write # Required to push signatures to GHCR
steps:
- uses: sigstore/cosign-installer@v3
- name: Sign the container image (keyless)
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign sign --yes ghcr.io/myorg/myapp@sha256:abc123...
- name: Verify the signature
run: |
cosign verify \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp https://github.com/myorg/myapp/.github/workflows/* \
ghcr.io/myorg/myapp@sha256:abc123...
صلاحية id-token: write هي العنصر الحاسم — فهي تسمح لـ GitHub Actions بإصدار رمز OIDC الذي يستخدمه Fulcio لإصدار شهادة التوقيع. لا أسرار للتهيئة، ولا مفاتيح للتخزين. للاطلاع على شرح عملي تفصيلي، راجع مختبر التوقيع بدون مفاتيح باستخدام Cosign.
نقاط القوة
- التوقيع بدون مفاتيح يُلغي إدارة المفاتيح بالكامل في CI/CD
- سجل الشفافية (Rekor) يوفر مسار تدقيق غير قابل للتغيير
- تخزين مُخرجات OCI الأصلي — لا حاجة لمخزن توقيعات خارجي
- تحقق غني بالسياسات مع مطابقة هوية الشهادة
- دعم واسع للنظام البيئي (Kyverno، OPA Gatekeeper، وحدات تحكم سياسات Kubernetes)
- مجتمع مفتوح المصدر نشط وممول جيدًا
القيود
- وضع التوقيع بدون مفاتيح يتطلب اتصالاً بالإنترنت للوصول إلى Fulcio وRekor (صعب للبيئات المعزولة)
- التحقق في البيئات المعزولة يتطلب نسخ سجل الشفافية محليًا
- مشروع حديث نسبيًا مقارنة بـ GPG (رغم أنه الآن مستقر ومتخرّج)
Notation وNotary v2
نظرة عامة
Notation هو عميل سطر الأوامر لمواصفة Notary v2، وهو مشروع CNCF مدعوم بشكل أساسي من Microsoft وAWS. حيث صُمم Cosign خصيصًا لنظام Sigstore البيئي، صُمم Notation للتكامل مع البنية التحتية للمفاتيح العامة (PKI) المؤسسية وسير عمل شهادات X.509 الحالية.
يستخدم Notation توقيعات COSE (CBOR Object Signing and Encryption) المُخزّنة كمُخرجات OCI مرفقة بالصورة الموقّعة باستخدام مواصفة ORAS (OCI Registry As Storage). مثل Cosign، يعني هذا أن التوقيعات تعيش في سجل OCI بجانب الصور.
إدارة المفاتيح عبر الإضافات
يستخدم Notation بنية إضافات لإدارة المفاتيح. بدلاً من التعامل مع المفاتيح مباشرة، يُفوّض الأمر إلى إضافات تتواصل مع خزائن مفاتيح خارجية:
- إضافة Azure Key Vault — توقّع باستخدام مفاتيح مُخزّنة في Azure Key Vault.
- إضافة AWS Signer — تستخدم AWS Signer، وهي خدمة توقيع مُدارة بالكامل.
- إضافة HashiCorp Vault — تتكامل مع محرك أسرار Transit في Vault.
نموذج الإضافات هذا مناسب بشكل طبيعي للمؤسسات التي لديها بالفعل إدارة مفاتيح مركزية وبنية تحتية PKI. مفتاح التوقيع لا يغادر أبدًا HSM أو KMS السحابي — يُرسل Notation الملخص إلى الإضافة، وتُعيد الإضافة التوقيع.
سياسات الثقة ومخازن الثقة
يستخدم Notation نظام سياسة ثقة قائم على JSON للتحقق. تُحدد السجلات والمستودعات والصور التي تثق بها والشهادات أو سلاسل الشهادات المصرّح لها بالتوقيع عليها. هذا أمر قوي لسيناريوهات الحوكمة المؤسسية حيث يكون لدى الفرق المختلفة سلطات توقيع مختلفة.
// trustpolicy.json
{
"version": "1.0",
"trustPolicies": [
{
"name": "production-images",
"registryScopes": ["registry.example.com/prod/*"],
"signatureVerification": {
"level": "strict"
},
"trustStores": ["ca:production-ca"],
"trustedIdentities": ["x509.subject: CN=prod-signer, O=MyOrg"]
}
]
}
مثال على التكامل مع CI/CD: GitHub Actions مع AWS Signer
# .github/workflows/notation-sign.yml
jobs:
sign:
runs-on: ubuntu-latest
permissions:
id-token: write # For AWS OIDC federation
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123456789012:role/signer-role
aws-region: us-east-1
- name: Setup Notation
uses: notaryproject/notation-action/setup@v1
- name: Install AWS Signer plugin
run: |
notation plugin install \
--url https://d2hvyiie56hcat.cloudfront.net/linux/amd64/plugin/latest/notation-aws-signer-plugin.zip
- name: Sign the container image
run: |
notation sign \
--plugin com.amazonaws.signer.notation.plugin \
--id arn:aws:signer:us-east-1:123456789012:/signing-profiles/MyProfile \
registry.example.com/myapp@sha256:abc123...
نقاط القوة
- بنية إضافات ملائمة للمؤسسات تتكامل مع PKI وKMS الحاليين
- إطار سياسة ثقة غني للتحقق الدقيق على مستوى السجلات
- تنسيق توقيع COSE هو معيار IETF راسخ
- دعم قوي من Microsoft (Azure) وAWS
- مصمم للمؤسسات ذات سير عمل شهادات X.509 الحالية
- التحقق دون اتصال سهل — تحتاج فقط لشهادات مخزن الثقة
القيود
- لا يوجد توقيع بدون مفاتيح — يجب إدارة الشهادات والمفاتيح (حتى لو فُوّضت إلى KMS)
- لا يوجد مكافئ مدمج لسجل الشفافية
- نظام الإضافات لا يزال ينمو؛ إضافات أقل من نقاط تكامل Cosign
- مجتمع أصغر ودروس تعليمية أقل مقارنة بـ Cosign
- تهيئة سياسة الثقة يمكن أن تكون معقدة لحالات الاستخدام البسيطة
GPG: الأسلوب التقليدي
نظرة عامة
GPG (GNU Privacy Guard) هو المخضرم في عالم التوقيع. قبل وقت طويل من وجود أدوات التوقيع الأصلية للحاويات، كان GPG يُستخدم لتوقيع كل شيء من البريد الإلكتروني إلى Git commits إلى حزم Linux. لا تزال بعض الفرق تستخدم GPG لتوقيع صور الحاويات، خاصة من خلال أدوات مثل Docker Content Trust (DCT) أو عن طريق توقيع بيانات الصور خارج النطاق.
كيف يعمل توقيع GPG للحاويات
يتبع توقيع حاويات GPG عادةً أحد نمطين:
- التوقيع خارج النطاق: تصدير بيان الصورة أو ملخصها، وتوقيعه بـ
gpg --detach-sign، وتخزين ملف.sigبجانب الصورة (في مخزن مُخرجات منفصل، أو S3 bucket، أو مستودع Git). - تكامل Podman/Skopeo: يدعم Podman وSkopeo توقيعات GPG أصلاً. تُخزّن التوقيعات على خادم توقيعات منفصل (خادم ويب يقدم توقيعات منفصلة) ويتم التحقق منها عند السحب باستخدام ملف سياسة (
/etc/containers/policy.json).
يستخدم Docker Content Trust (DCT) أسلوبًا مرتبطًا ولكن مميزًا يعتمد على The Update Framework (TUF)، مع Notary v1 كواجهة خلفية. بينما يستخدم DCT بدائيات تشفيرية مختلفة عن GPG الخام، فإنه يشترك في نفس التحدي الأساسي: إدارة مفاتيح طويلة الأمد.
تحديات إدارة المفاتيح
أكبر نقطة ضعف في GPG في سياق CI/CD هي إدارة المفاتيح:
- يجب إنشاء وتوزيع وتدوير وإلغاء أزواج مفاتيح طويلة الأمد
- يجب حقن المفاتيح الخاصة بأمان في مُشغّلات CI/CD كأسرار
- لا يوجد آلية مدمجة لإيداع المفاتيح أو استعادتها
- توزيع المفاتيح على المتحققين (عقد المجموعة، وحدات التحكم في القبول) يتطلب عمليات يدوية أو خادم مفاتيح
- اختراق المفاتيح يتطلب تدويرًا طارئًا عبر جميع الأنظمة
مثال على التكامل مع CI/CD: GitLab CI مع GPG
# .gitlab-ci.yml
sign-image:
stage: sign
image: alpine:latest
before_script:
- apk add --no-cache gnupg skopeo
- echo "$GPG_PRIVATE_KEY" | gpg --batch --import
script:
- skopeo copy \
--sign-by signing-key@myorg.com \
docker://registry.example.com/myapp:${CI_COMMIT_SHORT_SHA} \
docker://registry.example.com/myapp:${CI_COMMIT_SHORT_SHA}
variables:
GPG_PRIVATE_KEY: $GPG_SIGNING_KEY # Stored in CI/CD variables
لاحظ كيف يجب تخزين المفتاح الخاص كسر CI/CD وحقنه في وقت التشغيل — وهذا بالضبط نوع إدارة الأسرار طويلة الأمد الذي صُمم التوقيع بدون مفاتيح للتخلص منه.
نقاط القوة
- تشفير مُختبر ميدانيًا — تم تدقيق وتقوية GPG لعقود
- يعمل في بيئات معزولة تمامًا دون أي تبعيات خارجية
- مألوف لفرق العمليات ذات خلفيات Linux/الأمن
- دعم واسع للأدوات في نظام Podman/Skopeo البيئي
- تحكم كامل في مواد المفاتيح (مهم لأُطر امتثال معينة)
القيود
- إدارة المفاتيح اليدوية المعرضة للخطأ هي العبء التشغيلي الأكبر
- لا يوجد وضع بدون مفاتيح — يجب أن تكون المفاتيح الخاصة في مكان يمكن لـ CI/CD الوصول إليه
- لا يوجد تخزين مُخرجات OCI أصلي — التوقيعات تُخزّن خارج النطاق
- لا يوجد سجل شفافية لمسارات التدقيق
- توزيع التوقيعات واكتشافها مجزأ
- لا يتحقق Docker/containerd أصلاً من توقيعات GPG (يتطلب Podman/Skopeo أو أدوات مخصصة)
مقارنة جنبًا إلى جنب
| الميزة | Cosign (Sigstore) | Notation (Notary v2) | GPG |
|---|---|---|---|
| إدارة المفاتيح | بدون مفاتيح (OIDC) أو أزواج مفاتيح ثابتة | قائم على الإضافات (KMS، HSM، خزائن سحابية) | أزواج مفاتيح PGP يدوية |
| التوقيع بدون مفاتيح | نعم (Fulcio + OIDC) | لا | لا |
| تنسيق التوقيع | مغلف JSON (in-toto/DSSE) | توقيعات COSE (CBOR) | توقيعات PGP منفصلة |
| تخزين التوقيع | سجل OCI (كمُخرجات OCI) | سجل OCI (عبر ORAS) | خارج النطاق (خادم ويب، S3، Git) |
| توافق سجل OCI | ممتاز — يعمل مع جميع السجلات الرئيسية | جيد — يتطلب دعم واجهة OCI 1.1 referrers API | لا يوجد — التوقيعات تُخزّن خارجيًا |
| سجل الشفافية | نعم (Rekor) | لا (مخطط) | لا |
| تكامل CI/CD | ممتاز — GitHub Actions، GitLab CI، Tekton، دعم OIDC أصلي | جيد — GitHub Actions، يعمل مع أي CI عبر الإضافات | يدوي — يتطلب حقن أسرار المفاتيح الخاصة |
| سياسات Kubernetes | Kyverno، OPA Gatekeeper، Sigstore Policy Controller | Ratify (مع Gatekeeper)، Kyverno (محدود) | يتطلب webhook قبول مخصص |
| دعم البيئات المعزولة | ممكن (يتطلب نسخة TUF root محلية، نسخة Rekor) | نعم (سهل مع مخزن ثقة محلي) | نعم (قابل للعمل دون اتصال بالكامل) |
| النظام البيئي والمجتمع | كبير — Linux Foundation، Google، Red Hat، GitHub | ينمو — CNCF، Microsoft، AWS | ناضج لكن متراجع لاستخدام الحاويات |
| منحنى التعلم | منخفض (بدون مفاتيح) إلى متوسط (قائم على المفاتيح مع سياسات) | متوسط إلى مرتفع (إضافات، سياسات ثقة، PKI) | متوسط (أدوات مألوفة، عمليات مؤلمة) |
| دعم الشهادات | نعم (SBOM، إثبات مصدر SLSA، predicates مخصصة) | نعم (عبر مُخرجات ORAS المرفقة) | لا يوجد دعم أصلي |
مصفوفة القرار: متى تستخدم أي أداة
يعتمد اختيار أداة التوقيع المناسبة على سياقك المؤسسي. إليك إطار قرار عملي:
اختر Cosign إذا:
- تبدأ من الصفر في توقيع الحاويات وتريد أسرع طريق للإنتاج.
- تستخدم GitHub Actions أو GitLab CI أو أي نظام CI/CD يدعم OIDC — التوقيع بدون مفاتيح يعمل مباشرة.
- تريد سجل شفافية للتدقيق والامتثال دون بنائه بنفسك.
- تتبنى شهادات SLSA أو in-toto — يدعم Cosign بشكل أصلي إرفاق SBOMs وبيانات إثبات المصدر.
- تريد تكاملاً واسعًا مع سياسات Kubernetes مع Kyverno أو Sigstore Policy Controller.
- أنت شركة ناشئة أو متوسطة الحجم بدون فريق PKI مخصص.
للاطلاع على دليل شامل حول Sigstore والتوقيع بدون مفاتيح، راجع دليل التوقيع بدون مفاتيح باستخدام Sigstore وCosign.
اختر Notation إذا:
- مؤسستك لديها بنية تحتية PKI قائمة وسير عمل إدارة شهادات X.509 تريد الاستفادة منها.
- أنت مستثمر بكثافة في Azure أو AWS وتريد تكاملاً أصليًا مع Azure Key Vault أو AWS Signer.
- تحتاج سياسات ثقة دقيقة محددة النطاق لسجلات ومستودعات أو فرق معينة.
- متطلبات الامتثال تفرض حفظ مفاتيح محدد (FIPS 140-2، FedRAMP) حيث لا يفي التوقيع بدون مفاتيح بالمعايير.
- تعمل في بيئة لا يمكن فيها الوصول إلى البنية التحتية العامة لـ Sigstore لكن لديك PKI داخلي.
اختر GPG إذا:
- أنت في بيئة معزولة تمامًا لا يُسمح فيها بأي تبعيات على خدمات خارجية.
- تستخدم Podman/Skopeo كبيئة تشغيل حاويات أساسية ولديك بالفعل بنية تحتية لمفاتيح GPG.
- المتطلبات التنظيمية تفرض GPG تحديدًا (نادر، لكن بعض العقود الحكومية تحدده).
- توقّع مُخرجات غير OCI بجانب الحاويات وتريد أداة توقيع واحدة.
لمعظم الفرق التي تبني تطبيقات سحابية حديثة، Cosign مع التوقيع بدون مفاتيح هو الخيار الافتراضي الموصى به. فهو يوفر أفضل نسبة أمان إلى تعقيد تشغيلي ويُزيل عبء إدارة المفاتيح الذي يتسبب في فشل معظم مبادرات التوقيع عمليًا.
أنماط تكامل CI/CD
بالإضافة إلى الأمثلة الفردية أعلاه، إليك أنماط معمارية لدمج التوقيع في مسارك:
النمط 1: التوقيع عند البناء (Cosign بدون مفاتيح)
أبسط نمط. نفس مهمة المسار التي تبني وتدفع الصورة توقّعها أيضًا. التوقيع بدون مفاتيح يعني عدم وجود أسرار للإدارة:
Build Image → Push to Registry → Cosign Sign (keyless) → Record in Rekor
يعمل هذا بشكل رائع مع GitHub Actions وGitLab CI 16.0+ وأي نظام CI يوفر رموز OIDC. هوية OIDC للمسار تصبح هوية التوقيع، مما يُنشئ سلسلة قابلة للتحقق من الالتزام المصدري إلى الصورة الموقّعة.
النمط 2: خدمة توقيع مركزية (Notation + KMS)
للمؤسسات التي تريد فصل المهام، تستقبل خدمة توقيع مركزية مُخرجات البناء وتوقّعها باستخدام مفاتيح في KMS:
Build Pipeline → Push to Registry → Request Signing → Notation Sign (KMS plugin) → Approval Workflow
يُمكّن هذا النمط السيناريوهات التي لا يستطيع فيها فريق البناء التوقيع مباشرة — يجب أن يوافق فريق أمن منفصل أو محرك سياسة آلي على المُخرج ويوقّعه. تُطبّق سياسات الوصول في AWS Signer وAzure Key Vault من يمكنه طلب التوقيعات.
النمط 3: بوابات التحقق (أي أداة)
بغض النظر عن أداة التوقيع التي تستخدمها، جانب التحقق بنفس الأهمية. نفّذ التحقق في نقاط متعددة:
- بوابة ما قبل النشر: وحدة تحكم القبول في Kubernetes (Kyverno، Gatekeeper + Ratify، Sigstore Policy Controller) ترفض الصور غير الموقّعة أو الموقّعة بشكل خاطئ.
- بوابة الترقية: قبل ترقية صورة من سجل التجهيز إلى سجل الإنتاج، تحقق من توقيعها.
- تدقيق وقت التشغيل: فحص أحمال العمل الجارية دوريًا والتحقق من أن توقيعاتها لا تزال صالحة وفقًا لسياسات الثقة الحالية.
استراتيجية متعددة الأدوات
تستخدم بعض المؤسسات أدوات متعددة. على سبيل المثال، Cosign لتوقيع مسار CI/CD (سهولة التوقيع بدون مفاتيح) وNotation لتوقيع الإصدارات (امتثال PKI المؤسسي). كلاهما يُخزّن التوقيعات كمُخرجات OCI، لذا يمكنهما التعايش على نفس الصورة. يمكن لسياسات التحقق أن تتطلب توقيعات من كلتا الأداتين قبل السماح بالنشر.
مستقبل توقيع الحاويات
يتقارب مشهد توقيع الحاويات حول عدة اتجاهات مهمة:
- OCI 1.1 وReferrers API: تدعم مواصفة توزيع OCI الآن أصلاً مراجع المُخرجات، التي يستفيد منها كل من Cosign وNotation. يُوحّد هذا كيفية إرفاق التوقيعات وSBOMs والشهادات بالصور.
- شهادات SLSA وin-toto: يتطور التوقيع من مجرد “من بنى هذا” ليشمل إثبات مصدر البناء القابل للتحقق، وبيانات التبعيات، ونتائج فحص الأمان — كلها موقّعة ومرفقة بالصورة.
- السياسة كرمز: أدوات مثل Kyverno وGatekeeper تجعل من الممكن التعبير عن متطلبات التوقيع المعقدة كسياسات تصريحية، مما يُقلّص الفجوة بين النية الأمنية والتنفيذ.
- تبنّي Sigstore: أنظمة الحزم الرئيسية (npm، PyPI، Maven Central) تتبنى Sigstore، مما يزيد من الإلمام ونضج الأدوات عبر الصناعة.
الخلاصة والتوصية
تحل الأدوات الثلاث جميعها المشكلة الأساسية المتمثلة في التحقق من أصالة صور الحاويات، لكنها تخدم سياقات مختلفة:
- Cosign هو الخيار الأفضل لمعظم الفرق. التوقيع بدون مفاتيح يُزيل العبء التشغيلي الذي يقتل مبادرات التوقيع، وسجل الشفافية يوفر قدرات تدقيق جاهزة، والتكامل مع النظام البيئي هو الأوسع. إذا كنت تبدأ مبادرة توقيع حاويات جديدة، ابدأ من هنا.
- Notation هو الخيار الصحيح للمؤسسات ذات PKI الراسخة ومتطلبات الامتثال المحددة حول حفظ المفاتيح. نموذج الإضافات وإطار سياسة الثقة مصممان للمؤسسات التي تحتاج سلطة توقيع دقيقة ومُفوّضة.
- GPG يجب حجزه للبيئات القديمة، والأنظمة المعزولة تمامًا، أو سير عمل Podman الأصلية حيث لا يمكن استخدام الأدوات الأخرى فعلاً. للنشر الجديد، من الصعب تبرير العبء التشغيلي لإدارة مفاتيح GPG.
الأهم هو أن تبدأ بالتوقيع. تطبيق توقيع غير مثالي يُشحن فعلاً أكثر قيمة بلا حدود من تطبيق مثالي يبقى على خارطة الطريق. اختر الأداة التي تتناسب مع قدرات فريقك، ونفّذها في مسارك، وأضف بوابات تحقق في Kubernetes. يمكنك دائمًا تطوير أدواتك لاحقًا — الخطوة الحاسمة هي ترسيخ الممارسة.
مستعد للتطبيق العملي؟ ابدأ بـدليل التوقيع بدون مفاتيح باستخدام Sigstore للأسس المفاهيمية، ثم اعمل على مختبر التوقيع بدون مفاتيح باستخدام Cosign لتطبيقه في مسار GitHub Actions حقيقي.