terraform.tfstateファイルを作成するアクセス権を持つS3バケットを作成するにはどうすればよいですか?どのようにしてtfstateをバケットに入れるのですか?これを行う適切な方法は何ですか?terraformバックエンドs3バケット作成は、Terraform 0.11.1を返します。
はじめに、私はこれを理解するために6時間以上を費やしました。私はsimilar postがMFAに起因する問題を見た。それは私の問題ではない。
EC2インスタンス、VPCなどのリソースを作成するのに同じコードを使用しています。
---[ REQUEST POST-SIGN ]-----------------------------
GET /?prefix=env%3A%2F HTTP/1.1
Host: tfstate-neonaluminum.s3.us-east-2.amazonaws.com
User-Agent: aws-sdk-go/1.10.36 (go1.9.2; darwin; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.11.1
Authorization: AWS4-HMAC-SHA256 Credential=<CUT>/20171215/us-east-2/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=<CUT>
X-Amz-Content-Sha256: <CUT>
X-Amz-Date: 20171215T103755Z
Accept-Encoding: gzip
-----------------------------------------------------
2017/12/15 04:37:55 [DEBUG] [aws-sdk-go] DEBUG: Response s3/ListObjects Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 403 Forbidden
Connection: close
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 15 Dec 2017 10:37:55 GMT
Server: AmazonS3
X-Amz-Bucket-Region: us-east-2
X-Amz-Id-2: UwWJlCAtabKny2Ncam+D7/s9Rozjw43ozsVNdtZgQqPSXoSvZbO3JnuPz3B9cmLcgYea6x8xPqQ=
X-Amz-Request-Id: 470C02B96A60090B
ここ.tfコードです: - stackoverflowの上の質問をする新しい
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.region}"
}
terraform {
backend "s3" {
bucket = "tfstate-neonaluminum"
key = "terraform.tfstate"
region = "us-east-2"
}
}
resource "aws_s3_bucket" "terraform_state_bucket" {
bucket = "tfstate-neonaluminum"
acl = "private"
tags {
management = "terraform"
}
}
は、私は必要なすべての詳細を残していなかった願っています。
あなたの提供されたキー( 'var.aws_access_key')はs3バケット' tfstate-neonalumin'への書き込み権限とリスト権限を持っていますか? – fishi
実際にTerraformによって作成されたバケットを使ってs3をバックエンドとして使用することは可能でしょうか?いずれにしてもわかりませんが、Terraformを実行する前にバケツが存在する必要があります。それ以外の場合、状態ファイルはどのように取得されますか? – timothyclifford
はい、私は既にterraformでS3バケットを作成しました。バケツを作成したのと同じキーを使用してバケットに書き込むことができますか? – Neal