Как связать CodeBuild с репо CodeCommit в другом аккаунте? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь настроить CodeBuild с источником CodeCommit, который находится в другой учетной записи AWS. Я считаю, что это можно сделать с помощью AssumeRole, но мне не повезло. Может ли кто-нибудь помочь привести пример того, как заставить CodeBuild взять на себя роль, указанную в другой учетной записи, для доступа к репо CodeCommit?

В настоящее время моя роль CodeBuild (в учетной записи 22222222) включает следующую политику:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::11111111:role/Read-CodeCommit"
        }
    ]
}

В учетной записи 11111111 у меня роль Read-CodeCommit имеет следующую политику:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "codecommit:*"
            ],
            "Resource": "arn:aws:codecommit:us-west-2:11111111:dashboard"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "codecommit:ListRepositories",
            "Resource": "*"
        }
    ]
}

Read-CodeCommit имеет следующую политику доверия:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::22222222:root",
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

Edit: Публикация решения, которое я придумала для тех, кто может столкнуться с подобной проблемой.

Лучшее, что я мог сделать, это просто обойти проблему. Вместо того, чтобы устанавливать CodeCommit в качестве источника, я использую пользовательское изображение ECR, которое включает в себя учетные данные CodeCommit. Затем buildspec клонирует из репозитория.

Он не такой чистый, как мне нравится, но он выполняет свою работу.

...