Özel bir Docker Kayıt Defteri kurmaya ve görüntüleri AWS S3 örneğine kaydetmeye çalışıyorum. Kayıt defteri iyi çalışıyor gibi görünüyor - iyi bir şekilde başlıyor ve https üzerinden kimlik doğrulaması yapabilirim. Sorun şu ki, S3'e bir hata kaydediyorum, bu yüzden S3 IAM politikasında bazı izin problemleri olduğunu varsayalım.Docker resimlerini özel Docker Kayıt Defteri'nden AWS S3 kovasına kaydetme hatası
docker run
komut şuna benzer:
docker run -p 443:5000 \
--link redis:redis \
-e REGISTRY_STORAGE=s3 \
-e REGISTRY_STORAGE_S3_BUCKET=my-docker-registry \
-e REGISTRY_STORAGE_S3_ACCESSKEY=**** \
-e REGISTRY_STORAGE_S3_SECRETKEY=**** \
-e REGISTRY_STORAGE_S3_REGION=us-east-1 \
-v `pwd`/auth:/auth \
-e REGISTRY_AUTH=htpasswd \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/my.com_chain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/my.com.key \
-e REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR=redis \
-e REGISTRY_REDIS_ADDR=redis:6379 \
registry:2.5
Ve S3 IAM politikası şuna benzer:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::my-docker-registry"
},
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource":"arn:aws:s3:::my-docker-registry/*"
}
]
}
hata günlüğü girişi: Ben ettik
level=error msg="error resolving upload: s3aws: AccessDenied: Access Denied\n\tstatus code: 403, request id: 2B224..." auth.user.name=my-user go.version=go1.6.3 http.request.host=my.domain.com http.request.id=13b79c07-... http.request.method=PATCH http.request.remoteaddr="xx.xx.xx.xx:41392" http.request.uri="/v2/my-test/blobs/uploads/467d94ea-2a77...?_state=zQd-..." http.request.useragent="docker/1.12.0 go/go1.6.3 git-commit/8eab123 kernel/4.4.15-moby os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.0 \\(darwin\\))" instance.id=8a8db6f1-8fe4 vars.name=my-test vars.uuid=467d94ea-2a77 version=v2.5.0
diğer uygulamalarda dosya yüklemeleri için benzer bir politika kullandı, dolayısıyla sorunun nerede olduğundan emin değilim. Kayıt defterinin S3 grubuna kaydedilmesine izin vermek için IAM ilkesinde neyi değiştirmem gerekiyor?
Hangi kayıt defterini kullandığınızdan bahseder misiniz? Elastik Konteyner Servisi? –
Kendi kayıt defterimi kullanıyorum, Dockerfile yazıyor. – ldg