AWS ECR با نقاط پایانی – خطاهای دسترسی

رجیستری کانتینر AWS Elastic Container (ECR) یک رجیستری کاملاً مدیریت شده Docker Container است که باعث می شود تا توسعه دهندگان برنامه های کاربردی مبتنی بر کانتینر را برای توسعه دهندگان آسان کنند. بنابراین آن را یک مخزن ایمن و مقیاس پذیر برای تصاویر کانتینر Docker در نظر بگیرید. در این پیگیری به چند نکته اشاره خواهم کرد که قبل از استفاده از ECR باید از آنها آگاه باشید.
هنگامی که تصویری را در مخزن ECR آمازون ذخیره می کنیم ، آمازون آن تصاویر را با استفاده از سطل S3 در پس زمینه ذخیره می کند. این سطل S3 برای هر منطقه بی نظیر است. این تا زمانی که از نقاط پایانی AWS برای رسیدن به سطل ECR یا S3 استفاده کنیم ، بر معماری AWS ما تأثیر نمی گذارد.
1. هنگامی که معماری ما برای محدود کردن دسترسی به اینترنت طراحی شده است ،
برای دسترسی به سطل S3 که تصاویر در واقع ذخیره می شوند ، باید نقطه پایانی رابط AWS ایجاد کنیم. اگر برای محدود کردن دسترسی از یک خط مشی پایانی خاص استفاده کنیم ، باید سطل S3 ARN در آن مجاز باشد. در زیر نام منابع آمازون (ARN) سطل آمازون S3 حاوی لایه ها برای هر تصویر docker است.
arn:aws:s3:::prod--starport-layer-bucket/*
توجه: شما باید نام منطقه را در سطل ARN به روز کنید.
2. وقتی معماری ما یک یا چند سطل S3 خصوصی دارد و VPC دسترسی به اینترنت دارد ،
اکنون به دلیل اینکه ما یک اتصال به اینترنت داریم می توانید تصمیم خود را بگیرید ، در صورت نیاز به نقطه پایانی رابط برای دسترسی به ECR در این مورد خاص. اختیاری است
با این حال ، برای دسترسی به سطل های خصوصی S3 ، باید نقطه پایانی رابط/دروازه را اضافه کنیم. اگر ما از خط مشی نقطه پایانی برای محدود کردن دسترسی استفاده می کنیم ، ECR Image ذخیره سازی سطل S3 ARN باید در خط مشی نقطه پایانی مجاز باشد. در غیر این صورت ، ECR هنگام تلاش برای کار با مخازن ECR خطاها را برمی گرداند. به مثال زیر مراجعه کنید.
Failed to pull image "123456789.dkr.ecr.ap-southeast-1.amazonaws.com/ecr_repo:1.1": failed to pull and unpack image "123456789.dkr.ecr.ap-southeast-1.amazonaws.com/ecr_repo:1.1": failed to copy: httpReadSeeker: failed open: unexpected status code https://123456789.dkr.ecr.ap-southeast-1.amazonaws.com/ecr_repo/blobs/sha256:7fa43ee6781f1f46033bd360df783c66897d544d2aafceec4f55b1ebd2497eee : 403 Forbidden
برای محدود کردن دسترسی به سطل S3 می توانید از خط مشی زیر استفاده کنید.
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "*",
"Resource": [ "arn:aws:s3:::prod--starport-layer-bucket/*",
"" ]
}
]
}
توجه: شما باید نام منطقه را در سطل ARN به روز کنید.
این دو مورد استفاده به شما در ساخت برنامه ها با استفاده از AWS EKS و ECS کمک می کند.