0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS関連の自分のブログ振り返りAdvent Calendar 2022

Day 13

CloudFrontでOrigin Access Control (OAC)を利用したアクセス制御のハンズオン

Posted at

はじめに

今年8月26日のアップデートでCloudFrontからS3へOrigin Access Control (OAC)を利用したアクセス制御についての発表がされました。

Amazon CloudFront introduces Origin Access Control (OAC)

Origin Access Control (OAC)の利点

下記のような利点が挙げられ、新たにCloudFrontからS3アクセス制限をする場合にはOrigin Access Control (OAC)を積極的に使用していく

・セキュリティの強化
・HTTPメソッドのサポート(GET, PUT, POST, PATCH, DELETE, OPTIONS, HEAD)
・SSE-KMSを使用したS3バケットのダウンロードとアップロードのサポート
・全ての(2022年12月までに開始される)リージョンでOAIをサポート
・SigV4のみで対応しているリージョンへのHTTP/HTTPSを利用したPOSTメソッドのリクエスト

ハンズオン

・既にS3は作成してある(暗号化なし)状態でスタートします

Cloudfrontの設定

ディストリビューションの作成

項目『オリジンドメイン』に対象とするS3バケットを入力する
項目『S3バケットアクセス』にあるOrigin access control settingsを選択する

コントロール設定を作成

特に変更なしで『作成』を押下、他の項目も変更なしで画面下にある『ディストリビューションを作成』を押下する

ポリシーをコピーする

ディストリビューション完成後、画面上部の赤枠部分『ポリシーをコピー』を押下してポリシーのコピーを行う。

S3の設定

バケットポリシーの編集

対象のS3へ移動後、項目『バケットポリシー』の『編集』を押下する

編集後の画面

Origin Access Control (OAC)ポリシーの内容(今回コピーしたポリシーの内容)

{
        "Version": "2008-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "AllowCloudFrontServicePrincipal",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudfront.amazonaws.com"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::tetutetu-test/*",
                "Condition": {
                    "StringEquals": {
                      "AWS:SourceArn": "arn:aws:cloudfront::012345678912:distribution/E1XXXXXXXXXXXX"
                    }
                }
            }
        ]
      }

※参考:従来の Origin Access Control (OAI)でのポリシー

"Principal"の部分に多少の違いが見られます

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3XXXXXXXXXXXX"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::tetutetu-test/*"
         }
    ]
}

挙動の確認

CloudFront経由でアクセスした際の画面

さいごに

今回は基本的な設定の仕方のみでしたが、実際恩恵を受けるにあたってはSSE-KMS暗号化しているS3にアクセスするパターンの場合とかですかね。とりあえずセキュリティの強化だけを今回のハンズオンできた感じです。
もう少し時間をとって、SSE-KMS暗号化しているS3へのアクセスする場合など切り分けして学習してきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?