Amazon ECR Docker Credential Helper هو مساعد بيانات اعتماد لبرنامج Docker الخفي الذي يسهل استخدام Amazon Elastic Container Registry.
المتطلبات الأساسية
التثبيت
أمازون لينكس 2023 (AL2023)
أمازون لينكس 2 (AL2)
نظام التشغيل ماك
دبيان باستر (والإصدارات المستقبلية)
Ubuntu 19.04 Disco Dingo والإصدارات الأحدث
آرتش لينكس
جبال الألب لينكس
ويندوز
من المصدر
إعدادات
عامل ميناء
بيانات اعتماد AWS
مساعد اعتماد Amazon ECR Docker
الاستخدام
استكشاف الأخطاء وإصلاحها
الإفصاحات الأمنية
رخصة
يجب أن يكون لديك على الأقل Docker 1.11 مثبتًا على نظامك.
يجب أيضًا أن تتوفر لديك بيانات اعتماد AWS. راجع قسم بيانات اعتماد AWS للحصول على تفاصيل حول كيفية استخدام بيانات اعتماد AWS المختلفة.
يمكنك تثبيت Amazon ECR Credential Helper من مستودعات Amazon Linux 2023.
$ sudo dnf install -y amazon-ecr-credential-helper
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
يمكنك تثبيت Amazon ECR Credential Helper من docker
أو إضافات ecs
.
$ sudo amazon-linux-extras تمكن عامل الإرساء $ Sudo yum install amazon-ecr-credential-helper
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
تتوفر صيغة Homebrew التي يحتفظ بها المجتمع في الصنبور الأساسي.
$ Brew install docker-credential-helper-ecr
في نظام التشغيل macOS، هناك طريقة تثبيت أخرى يديرها المجتمع وهي استخدام MacPorts.
$ Sudo port install docker-credential-helper-ecr
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
يمكنك تثبيت Amazon ECR Credential Helper من أرشيفات Debian Buster. سيتم تضمين هذه الحزمة أيضًا في الإصدارات المستقبلية من دبيان.
$ سودو التحديث المناسب $ Sudo apt install amazon-ecr-credential-helper
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
يمكنك تثبيت Amazon ECR Credential Helper من أرشيفات Ubuntu 19.04 Disco Dingo (والإصدارات الأحدث).
$ سودو التحديث المناسب $ Sudo apt install amazon-ecr-credential-helper
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
تتوفر الحزمة التي يحتفظ بها المجتمع في مستودع مستخدم Arch.
استنساخ $ git https://aur.archlinux.org/amazon-ecr-credential-helper.git $ cd amazon-ecr-credential-helper $ makepkg -si
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
تتوفر الحزمة التي يحتفظ بها المجتمع في مستودع Alpine Linux aports.
$ apk إضافة docker-credential-ecr-login
ملحوظة
تُظهر الشارة الحافة فقط، تحقق من المستودع بحثًا عن الإصدارات الثابتة أو أضف --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
تتوفر الملفات التنفيذية لنظام التشغيل Windows عبر إصدارات GitHub.
ملحوظة
يعتبر دعم Windows ARM تجريبيًا.
انظر رقم 795
لإنشاء وتثبيت Amazon ECR Docker Credential Helper، نقترح تثبيت الإصدار 1.19 أو الأحدث و git
make
على نظامك.
إذا قمت للتو بتثبيت Go، فتأكد من إضافته أيضًا إلى PATH أو Environment Vars (Windows). على سبيل المثال:
$ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin
أو في ويندوز:
setx GOPATH %USERPROFILE%go <your existing PATH definitions>;%USERPROFILE%gobin
إذا لم تقم بتعريف PATH، فسيفشل الأمر أدناه بصمت، وسيخرج تشغيل docker-credential-ecr-login
: command not found
يمكنك تثبيت هذا عبر أداة سطر الأوامر go
.
لتثبيت التشغيل:
go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@latest
تحذير
إخلاء المسؤولية: يتم استخدام ملف Dockerfile الموجود في هذا المستودع لاختبار التجميع المتداخل للثنائيات المساعدة لبيانات اعتماد Amazon ECR في GitHub Actions CI وكأداة مساعدة للمطورين للإنشاء محليًا من المصدر. إنه تطبيق مرجعي وليس أمانًا معززًا لبناء وتشغيل حاويات الإنتاج.
إذا كانت لديك بيئة Docker بالفعل، فما عليك سوى استنساخ هذا المستودع في أي مكان وتشغيل make build-in-docker
. يقوم هذا الأمر بإنشاء الملف الثنائي باستخدام Go داخل حاوية Docker وإخراجه إلى الدليل المحلي.
باستخدام متغير البيئة TARGET_GOOS
، يمكنك أيضًا ترجمة الملف الثنائي.
بمجرد تثبيت مساعد بيانات الاعتماد، راجع قسم التكوين للحصول على إرشادات حول كيفية تكوين Docker للعمل مع المساعد.
ليست هناك حاجة لاستخدام docker login
أو docker logout
.
ضع ملف docker-credential-ecr-login
الثنائي على PATH
الخاص بك وقم بتعيين محتويات ملف ~/.docker/config.json
الخاص بك ليكون:
{ "credsStore": "تسجيل الدخول إلى ecr"}
يؤدي هذا إلى تكوين البرنامج الخفي Docker لاستخدام مساعد بيانات الاعتماد لجميع سجلات Amazon ECR.
يمكن استخدام Amazon ECR Docker Credential Helper جنبًا إلى جنب مع الرموز المميزة لمصادقة تسجيل الدخول إلى عامل الإرساء الموجودة لديك:
{ "credsStore": "ecr-login"، "auths": { "https://index.docker.io/v1/": { "auth": [docker.io-auth-token] }, "registry.gitlab.com": { "auth": [gitlab-auth-token] }, } }
باستخدام Docker 1.13.0 أو أحدث، يمكنك تكوين Docker لاستخدام مساعدين مختلفين لبيانات الاعتماد لسجلات ECR مختلفة. لاستخدام مساعد بيانات الاعتماد هذا لسجل ECR محدد، قم بإنشاء قسم credHelpers
باستخدام URI الخاص بسجل ECR الخاص بك:
{ "credHelpers": { "public.ecr.aws": "تسجيل الدخول ecr"، "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "تسجيل الدخول ecr" } }
يعد هذا مفيدًا إذا كنت تستخدم docker
للعمل على السجلات التي تستخدم بيانات اعتماد مصادقة مختلفة.
يتيح لك Amazon ECR Docker Credential Helper استخدام بيانات اعتماد AWS المخزنة في مواقع مختلفة. تشمل المعايير القياسية ما يلي:
ملف بيانات الاعتماد المشتركة ( ~/.aws/credentials
)
متغيرات البيئة AWS_ACCESS_KEY_ID
و AWS_SECRET_ACCESS_KEY
دور IAM لمهمة Amazon ECS
دور IAM لـ Amazon EC2
لاستخدام بيانات الاعتماد المرتبطة بملف تعريف مسمى مختلف في ملف بيانات الاعتماد المشترك ( ~/.aws/credentials
)، يمكنك تعيين متغير البيئة AWS_PROFILE
.
يقوم Amazon ECR Docker Credential Helper بقراءة ودعم بعض خيارات التكوين المحددة في ملف تكوين AWS المشترك ( ~/.aws/config
). لتعطيل هذه الخيارات، يجب عليك تعيين متغير البيئة AWS_SDK_LOAD_CONFIG
إلى false
. تشمل الخيارات المدعومة ما يلي:
الأدوار المفترضة المحددة بـ role_arn
و source_profile
عمليات بيانات الاعتماد الخارجية المحددة باستخدام credential_process
هويات الويب مثل أدوار IAM لحسابات الخدمة في Kubernetes ( ملاحظة: قد يواجه مستخدمو Kubernetes الذين يستخدمون حاويات مع مستخدم غير جذر مشكلات الأذونات الموضحة في هذا الخطأ وقد يحتاجون إلى استخدام حل بديل لضبط Kubernetes securityContext
. )
يستخدم Amazon ECR Docker Credential Helper نفس بيانات الاعتماد مثل AWS CLI وAWS SDKs. لمزيد من المعلومات حول تكوين بيانات اعتماد AWS، راجع ملفات التكوين وبيانات الاعتماد في دليل مستخدم واجهة سطر أوامر AWS .
يجب أن تحتوي بيانات الاعتماد على سياسة مطبقة تسمح بالوصول إلى Amazon ECR.
متغير البيئة | قيمة العينة | وصف |
---|---|---|
AWS_ECR_DISABLE_CACHE | حقيقي | تعطيل ذاكرة التخزين المؤقت لمصادقة الملف المحلي إذا تم تعيينها على قيمة غير فارغة |
AWS_ECR_CACHE_DIR | ~/.ecr | يحدد موقع دليل ذاكرة التخزين المؤقت للملف المحلي |
AWS_ECR_IGNORE_CREDS_STORAGE | حقيقي | تجاهل المكالمات لتسجيل الدخول أو تسجيل الخروج من عامل الإرساء وتظاهر بأنها نجحت |
docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker push 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker pull public.ecr.aws/amazonlinux/amazonlinux:latest
إذا قمت بتكوين ملفات تعريف إضافية للاستخدام مع AWS CLI، فيمكنك استخدام ملفات التعريف هذه عن طريق تحديد متغير البيئة AWS_PROFILE
عند استدعاء docker
. على سبيل المثال:
AWS_PROFILE=myprofile docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
ليست هناك حاجة لاستخدام docker login
أو docker logout
.
إذا قمت مسبقًا بالمصادقة مع مستودع ECR باستخدام أمر docker login
يدويًا، فمن المحتمل أن يكون Docker قد قام بتخزين رمز مصادقة مميز انتهت صلاحيته منذ ذلك الحين. سيستمر Docker في محاولة استخدام رمز المصادقة المخزن مؤقتًا بدلاً من استخدام مساعد بيانات الاعتماد. يجب عليك إزالة الرمز المميز منتهي الصلاحية الذي تم تخزينه مؤقتًا مسبقًا بشكل صريح باستخدام docker logout 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository
. بعد ذلك، سيبدأ Docker في استخدام مساعد بيانات الاعتماد ECR لجلب بيانات اعتماد جديدة، ولن تحتاج بعد الآن إلى استخدام docker login
أو docker logout
.
يتم تخزين السجلات من Amazon ECR Docker Credential Helper في ~/.ecr/log
.
لمزيد من المعلومات حول Amazon ECR، راجع دليل مستخدم Amazon Elastic Container Registry.
يتم توفير الميزات التي تم وضع علامة عليها على أنها تجريبية للمستخدمين بشكل اختياري لاختبارها وتقديم التعليقات.
إذا قمت باختبار أي ميزات تجريبية، فيمكنك تقديم تعليقات عبر مشكلة تتبع الميزة بخصوص:
تجربتك مع الميزة
قضايا أو مشاكل
التحسينات المقترحة
الميزات التجريبية غير مكتملة في التصميم والتنفيذ. قد يتم إدخال تغييرات غير متوافقة مع الإصدارات السابقة في أي وقت أو قد يتم إسقاط الدعم بالكامل. لذلك، لا يُنصح باستخدام الميزات التجريبية في بيئات الإنتاج.
إذا كنت تعتقد أنك وجدت مشكلة أمنية محتملة، فيرجى عدم نشرها في قسم "المشاكل". وبدلاً من ذلك، يرجى اتباع التعليمات الواردة هنا أو مراسلة أمان AWS عبر البريد الإلكتروني مباشرةً.
تم ترخيص Amazon ECR Docker Credential Helper بموجب ترخيص Apache 2.0.