今回は、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習得のお役に立てれば幸いです。