Мой простой файл terraform:
provider "aws" {
region = "region"
access_key = "key"
secret_key = "secret_key"
}
terraform {
backend "s3" {
# Replace this with your bucket name!
bucket = "great-name-terraform-state-2"
key = "global/s3/terraform.tfstate"
region = "eu-central-1"
# Replace this with your DynamoDB table name!
dynamodb_table = "great-name-locks-2"
encrypt = true
}
}
resource "aws_s3_bucket" "terraform_state" {
bucket = "great-name-terraform-state-2"
# Enable versioning so we can see the full revision history of our
# state files
versioning {
enabled = true
}
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}
resource "aws_dynamodb_table" "terraform_locks" {
name = "great-name-locks-2"
billing_mode = "PAY_PER_REQUEST"
hash_key = "LockID"
attribute {
name = "LockID"
type = "S"
}
}
Все, что я пытаюсь сделать, это заменить локальный бэкэнд на хранилище на S3. Я делаю следующее:
terraform init
(когда блок terrafrom {} является комментарием)terrafrom apply
- Я вижу в своем AWS, что сегмент был создан, а также таблица Dynmpo.теперь я не комментирую блок terrafrom и снова
terraform init
, и я получаю следующую ошибку:
Error loading state:
AccessDenied: Access Denied
status code: 403, request id: xxx, host id: xxxx
У моего IAM есть административный доступ. Я использую Terraform v0.12.24
, как вы видите, я напрямую записываю свой ключ и секрет AWS в файл.
Что я делаю неправильно?
Я ценю любую помощь!