Ich habe ein Terraform-Modul, das einen Benutzer für meine CI-Umgebung erstellt, um in ECR zu veröffentlichen.Terraform, das aws_iam_access_key jedes Mal neu erstellt
resource "aws_iam_user" "continuous-deployment" {
name = "continuous-deployment"
path = "/system/"
}
resource "aws_iam_access_key" "continuous-deployment" {
user = "${aws_iam_user.continuous-deployment.name}"
pgp_key = "${var.pgp_key}"
}
resource "aws_iam_user_policy" "continuous-deployment" {
name = "continuous-deployment"
user = "${aws_iam_user.continuous-deployment.name}"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:PutImage",
"ecr:GetLoginToken"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
output "aws_access_key_id" {
value = "${aws_iam_access_key.continuous-deployment.id}"
}
output "aws_secret_access_key" {
value = "${aws_iam_access_key.continuous-deployment.encrypted_secret}"
}
Das Problem, das ich habe ist, dass auf jeden terraform apply
, Terraforming will diese Ressourcen selbst löschen und neu erstellen, wenn sie sich nicht geändert haben.
Ich habe keine Ahnung, warum das passiert und kann leider niemanden in einer ähnlichen Position finden. Ideen?
'terraform plan' sollte zeigen, warum es Ressourcen löschen und neu erstellen möchte. – Nickolay
Nachdem Ihre Richtlinie erstellt wurde, kopieren Sie den Inhalt genau so, wie er in der AWS-Webkonsole angezeigt wird, und fügen Sie Ihr Skript ein –