Как создать учетные данные HTTPS Git для AWS CodeCommit? - PullRequest
0 голосов
/ 23 января 2019

Я использую terraform для создания IAM User. Как использовать terraform для генерации учетных данных HTTPS Git для AWS CodeCommit?

Мой код:

resource "aws_iam_user" "gitlab" {
  name = "user-gitlab"
}

resource "aws_iam_policy_attachment" "gitlab" {
  name       = "iam-gitlab"
  users      = ["${aws_iam_user.gitlab.name}"]
  policy_arn = "arn:aws:iam::aws:policy/AWSCodeCommitPowerUser"
}

С уважением,

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Используйте data.external для выполнения сценария CLI:

credentials=$(aws --profile dev iam list-service-specific-credentials \
  --user-name jenkins --service-name codecommit.amazonaws.com --query 'ServiceSpecificCredentials[0]')

if [[ $credentials == "null" ]]; then
  credentials=$(aws --profile dev iam create-service-specific-credential --user-name jenkins \
  --service-name codecommit.amazonaws.com --query ServiceSpecificCredential)
fi
echo "$credentials"

Затем terraform:

data "external" "jenkins" {
  count   = "${local.is_pcs_dev}"
  program = ["${path.root}/jenkins.sh"]
}

resource "aws_ssm_parameter" "jenkins_cc_id" {
  name      = "${local.jenkins}/codecommit_https_user"
  value     = "${lookup(data.external.jenkins.result, "ServiceUserName", "")}"
}

resource "aws_ssm_parameter" "jenkins_cc_p" {
  name      = "${local.jenkins}/codecommit_https_pass"
  value     = "${lookup(data.external.jenkins.result, "ServicePassword", "")}"
}
0 голосов
/ 23 января 2019

К сожалению, в Terraform этот API не поддерживается. Я рекомендую опубликовать запрос функции в AWS провайдере GitHub repo .

...