🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

5559閲覧

terraformを利用したtfstateファイルのS3へのアップロードができない

t.ozawa

総合スコア8

Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/12/27 04:02

編集2019/12/27 05:51

前提・実現したいこと

今回はじめてterraformを利用して開発を行うため、tfstateファイルをS3へアップロードしたいのですが、以下のようなエラーが出てしまいアップロードができません。
どなたかわかる方がいましたら回答をいただけますと幸いです。
※初投稿のため、不足情報等ありましたらご連絡ください。

発生している問題・エラーメッセージ

(base) $ terraform apply Backend reinitialization required. Please run "terraform init". Reason: Initial configuration of the requested backend "s3" The "backend" is the interface that Terraform uses to store state, perform operations, etc. If this message is showing up, it means that the Terraform configuration you're using is using a custom configuration for the Terraform backend. Changes to backend configurations require reinitialization. This allows Terraform to setup the new configuration, copy existing state, etc. This is only done during "terraform init". Please run that command now then try again. If the change reason above is incorrect, please verify your configuration hasn't changed and try again. At this point, no changes to your existing configuration or state have been made. Error: Initialization required. Please see the error message above. (base) $ terraform init Initializing the backend... Error: Error inspecting states in the "s3" backend: AccessDenied: Access Denied status code: 403, request id: aaaaa, host id: bbbbb Prior to changing backends, Terraform inspects the source and destination states to determine what kind of migration steps need to be taken, if any. Terraform failed to load the states. The data in both the source and the destination remain unmodified. Please resolve the above error and try again.

<provider.tf> ※terraformのDSLを記載しているファイル

provider "aws" { version = "~> 2.0" region = "ap-northeast-1" } resource "aws_instance" "sandbox" { count = 1 ami = "ami-785c491f" # Ubuntu 16.04 LTS official ami instance_type = "t2.micro" tags = { Name = "${format("sandbox-%02d", count.index + 1)}" } } terraform { backend "s3" { bucket = "terraform-sample1" key = "terraform.tfstate" region = "ap-northeast-1" } }

補足情報(FW/ツールのバージョンなど)

Terraform v0.12.17
OS:mac
AWS IAMのアクセス権限:AdministratorAccess
awsのアクセスキー、シークレットキーについてはaws CLIの「.aws/credentials」に記載

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.ozawa

2019/12/27 04:23 編集

早速の回答ありがとうございます! 自分もそう思ったのですが、以下のような記載にしても、ec2インスタンスの起動はできるのですが、s3へのアップロードはできないんですよね、、。 ------------------------------------------ provider "aws" { version = "~> 2.0" region = "ap-northeast-1" access_key = "******************" secret_key = "******************" } ------------------------------------------ ※ "******************"の部分にはシAWSのシークレットキーとアクセスキーを記載
guest

回答1

0

ベストアンサー

https://www.terraform.io/docs/providers/aws/index.html

$ export AWS_ACCESS_KEY_ID="anaccesskey" $ export AWS_SECRET_ACCESS_KEY="asecretkey" $ terraform init

AWS S3へのアクセス権がないようなので、上記のように AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定してから実行するとできるかと思います

投稿2019/12/27 04:59

ducci

総合スコア191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.ozawa

2019/12/27 05:48

ご連絡ありがとうございます! 現在aws CLIの「.aws/credentials」にアクセスキーとシークレットキーを記載しておりますが、アクセスキーとシークレットキーを環境変数に設定するほうがよいということでしょうか?
ducci

2019/12/27 06:41

見落としていました。どちらでも良いかと思います。 であれば。「.aws/credentials」に記載しているアクセスキーとシークレットキーが紐付いているアカウントがS3へのアクセスを許可されていないのではないでしょうか? https://dev.classmethod.jp/cloud/aws/tut-s3-ex1/ このあたり参考になるかもしれません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問