AWS/Terraform

【Terraform】S3のアカウントのブロックパブリックアクセスを設定してみた

今回は、TerraformでAWS S3のアカウントレベルでのブロックパブリックアクセスを設定する方法をご紹介します。

前提条件

Terraformバージョン1.0.2
TerraformのAWSプロバイダバージョン3.4.2

設定内容

Terraformを用いてS3の「このアカウントのブロックパブリックアクセス設定」をすべて有効化します。
※デフォルトの設定だと全てオフになっています。
▼設定前(マネジメントコンソール)

▼設定後(マネジメントコンソール)

設定方法

tfファイルに以下を追記して terraform apply を実行するだけです。
▼s3.tf

############################################################################
# S3ブロックパブリックアクセス設定
############################################################################
# アカウントレベル
resource "aws_s3_account_public_access_block" "s3_account_public_acess_block" {
block_public_acls = true
ignore_public_acls = true
block_public_policy = true
restrict_public_buckets = true
}

各パラメータの詳細

block_public_acls

新しいアクセスコントロールリスト (ACL) を介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする」に該当します。
設定をオフにしたい場合は「true」を「false」に書き換えて terraform apply を実行します。

ignore_public_acls

任意のアクセスコントロールリスト (ACL) を介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする」に該当します。
設定をオフにしたい場合は「true」を「false」に書き換えて terraform apply を実行します。

block_public_policy

新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする」に該当します。
設定をオフにしたい場合は「true」を「false」に書き換えて terraform apply を実行します。

restrict_public_buckets

任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介したバケットとオブジェクトへのパブリックアクセスとクロスアカウントアクセスをブロックする」に該当します。
設定をオフにしたい場合は「true」を「false」に書き換えて terraform apply を実行します。

※「パブリックアクセスをすべて ブロック」のパラメータはありません。
上記4つのパラメータをすべて「true」に設定すると、コンソール画面から見て「パブリックアクセスをすべて ブロック」にもチェックが入ります。

参考情報

Terraform Registry(Terraform公式ドキュメント)

以上となります。
この記事を通して、Terraform習得のお役に立てれば幸いです。