Amazon ECR Docker Credential Helper เป็นตัวช่วยรับรองสำหรับ Docker daemon ที่ทำให้ใช้งาน Amazon Elastic Container Registry ได้ง่ายขึ้น
ข้อกำหนดเบื้องต้น
กำลังติดตั้ง
อเมซอนลินุกซ์ 2023 (AL2023)
อเมซอน ลินุกซ์ 2 (AL2)
แมคโอเอส
Debian Buster (และเวอร์ชันในอนาคต)
Ubuntu 19.04 Disco Dingo และใหม่กว่า
อาร์ค ลินุกซ์
อัลไพน์ลินุกซ์
หน้าต่าง
จากแหล่งที่มา
การกำหนดค่า
นักเทียบท่า
ข้อมูลรับรอง AWS
ตัวช่วยข้อมูลรับรอง Amazon ECR Docker
การใช้งาน
การแก้ไขปัญหา
การเปิดเผยข้อมูลด้านความปลอดภัย
ใบอนุญาต
คุณต้องติดตั้ง Docker 1.11 เป็นอย่างน้อยบนระบบของคุณ
คุณต้องมีข้อมูลรับรอง AWS ด้วย ดูส่วนข้อมูลรับรอง AWS สำหรับรายละเอียดเกี่ยวกับวิธีใช้ข้อมูลรับรอง AWS ต่างๆ
คุณสามารถติดตั้ง Amazon ECR Credential Helper ได้จากพื้นที่เก็บข้อมูล Amazon Linux 2023
$ sudo dnf ติดตั้ง -y amazon-ecr-credential-helper
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
คุณสามารถติดตั้ง Amazon ECR Credential Helper ได้จาก docker
หรือ ecs
Extras
$ sudo amazon-linux-extras เปิดใช้งานนักเทียบท่า $ sudo yum ติดตั้ง amazon-ecr-credential-helper
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
สูตร Homebrew ที่ดูแลโดยชุมชนมีอยู่ในก๊อกหลัก
$ ชงติดตั้ง docker-credential-helper-ecr
บน macOS วิธีการติดตั้งอื่นที่ดูแลโดยชุมชนคือการใช้ MacPort
$ พอร์ต sudo ติดตั้ง docker-credential-helper-ecr
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
คุณสามารถติดตั้ง Amazon ECR Credential Helper ได้จากไฟล์เก็บถาวร Debian Buster แพ็คเกจนี้จะรวมอยู่ใน Debian รุ่นต่อๆ ไปด้วย
$ sudo อัปเดตฉลาด $ sudo apt ติดตั้ง amazon-ecr-credential-helper
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
คุณสามารถติดตั้ง Amazon ECR Credential Helper ได้จากไฟล์เก็บถาวร Ubuntu 19.04 Disco Dingo (และใหม่กว่า)
$ sudo อัปเดตฉลาด $ sudo apt ติดตั้ง amazon-ecr-credential-helper
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
แพ็คเกจที่ดูแลโดยชุมชนมีอยู่ใน Arch User Repository
$ โคลนคอมไพล์ https://aur.archlinux.org/amazon-ecr-credential-helper.git $ cd amazon-ecr-หนังสือรับรอง-ผู้ช่วย $ makepkg -si
เมื่อคุณติดตั้งตัวช่วยข้อมูลรับรองแล้ว โปรดดูส่วนการกำหนดค่าเพื่อดูคำแนะนำเกี่ยวกับวิธีกำหนดค่า Docker ให้ทำงานร่วมกับตัวช่วย
แพ็คเกจที่ดูแลโดยชุมชนมีอยู่ใน Alpine Linux aports Repository
$ 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 เราขอแนะนำให้ใช้ Go 1.19 หรือใหม่กว่า git
และ make
ตั้งบนระบบของคุณ
หากคุณเพิ่งติดตั้ง Go ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มลงใน PATH หรือ Environment Vars (Windows) ของคุณด้วย ตัวอย่างเช่น:
$ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin
หรือใน Windows:
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 daemon ให้ใช้ตัวช่วยข้อมูลประจำตัวสำหรับการลงทะเบียน Amazon ECR ทั้งหมด
Amazon ECR Docker Credential Helper สามารถใช้ควบคู่ไปกับโทเค็นการตรวจสอบสิทธิ์การเข้าสู่ระบบ Docker ที่มีอยู่ได้:
{ "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-login", "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "ecr-login" - -
สิ่งนี้มีประโยชน์หากคุณใช้ 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 SDK สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าข้อมูลรับรอง 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 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 License