Fargate не будет автоматически выполнять роль кросс-аккаунта.К счастью, вам не нужно брать на себя роль в другой учетной записи, чтобы получать изображения из репозитория ECR этой учетной записи.
Чтобы разрешить кросс-аккаунт доступ к изображению в ECR, добавьте доступ к учетной записи B в учетной записи Aхранилище (путем установки политики хранилища ), а затем укажите TaskExecutionRole в учетной записи B, у которого есть разрешения для извлечения из ECR («ecr: GetDownloadUrlForLayer», «ecr: BatchGetImage», «ecr: BatchCheckLayerAvailability»).
Например, задайте политику хранилища для хранилища в учетной записи A следующим образом:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowCrossAccountPull",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_B_ID:root"
},
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage"
]
}
]
}
Затем установите значение TaskExecutionRole в учетной записи B, чтобы иметь такую политику:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
],
"Resource": "*"
}
]
}
В качестве альтернативы вы можете использовать управляемую политику AmazonECSTaskExecutionRolePolicy
для своего TaskExecutionRole вместо определения своей собственной.