継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Terraform で CloudFront の署名付き URL をやるための設定をまとめる

タダです.

CloudFront の署名付き URL を使う機会があり,Terraform で関連設定を行ったことを書いていきます.今までは S3 の署名付き URL しか使ったことがなかったため備忘録としてこの記事にまとめていきます.

docs.aws.amazon.com

Terraform のコード

CloudFront の署名付き URL を使うにあたって公開鍵を登録する必要があります.ドキュメントに記載の方法で公開鍵と署名付き URL をリクエストするための秘密鍵を生成します.

$ openssl genrsa -out private_key.pem 2048
$ openssl rsa -pubout -in private_key.pem -out public_key.pem

この状態で Terraform のコードを定義します.aws_cloudfront_public_key で公開鍵を登録,aws_cloudfront_key_grouptrusted_key_groups を使って署名付き URL のリクエストを行えるように制御する設定を行います.これで設定自体は以上で,あとはリクエストを行って署名付き URL を取得していく形です.

resource "aws_cloudfront_distribution" "hoge" {
    ~中略~
    default_cache_behavior {
        trusted_key_groups = [aws_cloudfront_key_group.hoge_key_group.id]
    }
}
resource "aws_cloudfront_public_key" "hoge_key" {
  name        = "hoge-key"
  encoded_key = file("${path.module}/public_key.pem")
}
resource "aws_cloudfront_key_group" "hoge_key_group" {
  name    = "hoge-key-group"
  items   = [aws_cloudfront_public_key.hoge_key.id]
}

関連情報

registry.terraform.io

registry.terraform.io

registry.terraform.io

まとめ

Terraform で CloudFront の署名付き URL をやるための設定をまとめました.