AWS re:Postを使用することにより、以下に同意したことになります 利用規約

Amazon S3 バケットに TLS 1.2 以降の使用を強制する方法を教えてください。

所要時間1分
0

顧客が古いバージョンの TLS を使用しています。自分の Amazon Simple Storage Service (Amazon S3) バケットに保存されているコンテンツにアクセスする際に、最新の TLS バージョンを使用するよう強制したいと考えています。Amazon S3 バケットに TLS 1.2 以降の使用を強制する方法を教えてください。

簡単な説明

転送中のデータには、最新の暗号化プロトコルを使用するのがベストプラクティスです。バケットのセキュリティポリシーを更新することで、Amazon S3 への接続に TLS 1.2 以降の使用を強制できます。

注: 顧客が TLS 1.2 以降を使用していない場合、S3 バケットに保存されているコンテンツにはアクセスできません。

解決方法

バケットにアタッチされたリソースベースのポリシーを使用して、S3 バケットへのすべての接続に TLS 1.2 以降の使用を強制できます。

TLS バージョン 1.2 以降を必須とするバケットポリシーを設定するには:

  1. S3 コンソールに移動します。
  2. リストからバケットを選択します。
  3. [Permissions] (アクセス許可) タブに移動します。
  4. [Bucket Policy] (バケットポリシー) で、[Edit] (編集) を選択します。
  5. 防止する暗号化プロトコルへのアクセスを拒否するポリシーを追加します。例えば、1.2 より前の TLS バージョンを使用するすべての HTTPS リクエストを拒否するには、次のポリシーを使用します。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnforceTLSv12orHigher",
      "Principal": {
        "AWS": "*"
      },
      "Action": ["s3:*"],
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
      ],
      "Condition": {
        "NumericLessThan": {
          "s3:TlsVersion": 1.2
        }
      }
    }
  ]
}

S3 に最新の暗号化プロトコルを使用していることを確認する

新しいポリシーをテストするには、次のサンプルの curl コマンドを使用して、特定のレガシープロトコルを使用して HTTPS リクエストを行います。

curl https://${BUCKET_NAME}.s3.us-east-1.amazonaws.com/image.png -v --tlsv1.0 --tls-max 1.0

このサンプルの curl コマンドでは、リクエストが TLS 1.2 以降を使用していないことを Amazon S3 が検出すると、Access Denied (アクセス拒否) が返されます。

AWS CloudTrail Lake を使用して AWS サービスエンドポイントへの古い TLS 接続を識別することがベストプラクティスです。CloudTrail Lake イベントデータストアを設定して、管理イベントまたはデータイベントをキャプチャできます。CloudTrail Lake の対応する CloudTrail イベントには TLS バージョン 1.2 が表示され、顧客が最新のセキュリティポリシーを使用して Amazon S3 に接続していることを確認できます。


AWS公式
AWS公式更新しました 5ヶ月前