Назад | Перейти на главную страницу

ECR разрешения на извлечение между аккаунтами

У нас есть два аккаунта AWS. У учетной записи A есть репозитории ECR, и учетная запись B предназначена для извлечения информации из них.

Я попытался настроить разрешения для репозитория в учетной записи A, чтобы разрешить извлечение из учетной записи B, но AWS утверждает, что моя политика недействительна.

Я пытался:

Вышеупомянутое было сделано через консоль AWS, которая не позволяет редактировать JSON напрямую для разрешений ECR. Я пробовал команду CLI aws ecr set-repository-policy с вышеуказанными изменениями, но в терминале были возвращены те же ошибки.

Добавление разрешений для пользователей IAM в тот же самый аккаунт работает нормально.

Действия, которые я пытался добавить в политику:

        "Action": [
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer",
            "ecr:GetRepositoryPolicy",
            "ecr:ListImages",
            "ecr:DescribeRepositories"
        ]

Есть идеи, что я делаю неправильно?

Вам также необходимо настроить разрешения в ECR для доступа между аккаунтами. Чтобы предоставить доступ по запросу к ECR учетной записи A учетной записи B, поместите следующую политику JSON на вкладку ECR Permissions.

{
    "Version": "2008-10-17",
    "Statement": [
      {
        "Sid": "AllowCrossAccountPull",
        "Effect": "Allow",
        "Principal": {
          "AWS": "arn:aws:iam::aws_account_b_number:root"
        },
        "Action": [
          "ecr:GetDownloadUrlForLayer",
          "ecr:BatchCheckLayerAvailability",
          "ecr:BatchGetImage"
        ]
      }
    ]
  }

Вам необходимо настроить роль перекрестной учетной записи для учетной записи b.

Создайте роль перекрестной учетной записи в учетной записи, имеющей реестр, A, предоставьте доступ к реестру в роли. И дайте учетной записи B разрешения на выполнение этой роли.

http://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html