Wie erzwinge ich die Verwendung von TLS 1.2 oder höher für meine Amazon-S3-Buckets?

Lesedauer: 3 Minute
0

Meine Kunden verwenden ältere TLS-Versionen. Wenn sie auf Inhalte aus meinen Amazon Simple Storage Service (Amazon S3)-Buckets zugreifen, möchte ich die Verwendung einer aktuellen TLS-Version erzwingen.

Kurzbeschreibung

Es ist eine bewährte Methode, moderne Verschlüsselungsprotokolle für Daten während der Übertragung zu verwenden. Um die Verwendung von TLS Version 1.2 oder höher für Verbindungen zu Amazon S3 zu erzwingen, aktualisieren Sie die Sicherheitsrichtlinie Ihres Buckets.

Hinweis: Kunden müssen TLS Version 1.2 oder höher verwenden, um auf Inhalte zuzugreifen, die in Ihren S3-Buckets gespeichert sind.

Weitere Informationen zur Veraltung von TLS-Versionen für AWS finden Sie unter TLS 1.2 wird zur minimalen TLS-Protokollebene für alle AWS-API-Endpunkte.

Lösung

Verwenden Sie eine ressourcenbasierte Richtlinie, die an Ihren Bucket angehängt ist, um die Verwendung von TLS 1.2 oder höher für alle Verbindungen zu Ihren S3-Buckets zu erzwingen.

Gehen Sie wie folgt vor, um eine Bucket-Richtlinie anzuhängen, die TLS-Version 1.2 oder höher erfordert:

  1. Öffnen Sie die Amazon-S3-Konsole.

  2. Wählen Sie den Bucket aus der Liste aus.

  3. Wählen Sie die Registerkarte Berechtigungen aus.

  4. Wählen Sie unter Bucket-Richtlinie die Option Bearbeiten aus.

  5. Fügen Sie eine Richtlinie hinzu, um einen Zugriff mit den Verschlüsselungsprotokollen zu verweigern, die Sie verhindern möchten. Verwenden Sie beispielsweise die folgende Richtlinie, um alle HTTPS-Anfragen abzulehnen, die TLS-Versionen vor 1.2 verwenden:

    {
      "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
            }
          }
        }
      ]
    }

    Diese Richtlinie erzwingt HTTPS, um die Sicherheit Ihrer Daten während der Übertragung zu erhöhen.

    Wenn Ihr Workload HTTP-Verkehr zu Amazon S3 erfordert, verwenden Sie die folgende Richtlinie. Diese Richtlinie erlaubt HTTP-Verkehr und blockiert HTTPS-Verkehr von TLS-Versionen vor 1.2:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "UpdateTLSv12",
          "Effect": "Deny",
          "Principal": {
            "AWS": "*"
          },
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
          "Condition": {
            "Bool": {
              "aws:SecureTransport": "true"
            },
            "NumericLessThan": {
              "s3:TlsVersion": "1.2"
            }
          }
        }
      ]
    }

Stellen Sie sicher, dass Sie moderne Verschlüsselungsprotokolle für Amazon S3 verwenden

Um Ihre neue Richtlinie zu testen, verwenden Sie den curl-Befehl im folgenden Beispiel, um HTTPS-Anfragen mit einem bestimmten Legacy-Protokoll zu stellen:

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

Der curl-Befehl im Beispiel meldet Access Denied, da Amazon S3 feststellt, dass Ihre Anfrage nicht TLS Version 1.2 oder höher verwendet.

Hinweis: Standardmäßig sendet curl eine anonyme Anfrage. Wenn Ihr Bucket privat ist, erhalten Sie für jede TLS-Version den Fehler 403 Access Denied. Wenn Sie mit curl testen, generieren Sie eine vorsignierte Amazon-S3-URL, um Zugriff auf Ihre privaten Objekte zu erhalten.

Es ist eine bewährte Methode, AWS CloudTrail Lake zu verwenden, um Verbindungen mit älteren TLS-Versionen zu AWS-Serviceendpunkten zu identifizieren. Sie können den CloudTrail-Lake-Ereignisdatenspeicher so konfigurieren, dass Verwaltungsereignisse oder Datenereignisse erfasst werden.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten