Как настроить состояние terraform для зашифрованного ведра s3

Я настроил серверную часть s3 для состояния терраформирования, следуя этому превосходному ответу Остина Дэвиса. Я последовал предложению Мэтта Лавина добавить политику шифрования корзины.

К сожалению, эта политика ведра означает, что теперь бросает

Не удалось загрузить состояние: AccessDenied: Доступ запрещен, код состояния: 403, идентификатор запроса: XXXXXXXXXXXXXXXX, идентификатор хоста: XXXX...

Я подозреваю, что мне не хватает передачи или настройки чего-то на стороне terraform для шифрования связи или дополнительной записи политики, чтобы иметь возможность читать зашифрованное состояние.

Это политика, добавленная в корзину tf-state:

      {
  "Version": "2012-10-17",
  "Id": "RequireEncryption",
   "Statement": [
    {
      "Sid": "RequireEncryptedTransport",
      "Effect": "Deny",
      "Action": ["s3:*"],
      "Resource": ["arn:aws:s3:::${aws_s3_bucket.terraform_state.bucket}/*"],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    },
    {
      "Sid": "RequireEncryptedStorage",
      "Effect": "Deny",
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::${aws_s3_bucket.terraform_state.bucket}/*"],
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      },
      "Principal": "*"
    }
  ]
}

1 ответ

Я бы начал с удаления этой политики корзины и просто включил новую настройку шифрования корзины по умолчанию в корзине S3. Если после этого вам по-прежнему отказывают в доступе, значит, в роли IAM, которую вы используете при запуске Terraform, отсутствуют некоторые разрешения.

Другие вопросы по тегам