Wie kann ich den Zugriff auf meinen Amazon S3-Bucket über bestimmte VPC-Endpunkte oder IP-Adressen einschränken?

Lesedauer: 4 Minute
0

Ich möchte jeglichen Datenverkehr blockieren, der nicht von einem bestimmten Amazon Virtual Private Cloud (VPC)-Endpunkt oder bestimmten IP-Adressen kommt. Oder ich verwende einen Amazon Simple Storage Service (Amazon S3)-Bucket, um eine statische Website zu hosten. Die Website muss von bestimmten VPC-Endpunkten oder IP-Adressen aus zugänglich sein.

Behebung

**Warnung:**Die Beispiel-Bucket-Richtlinien in diesem Artikel verweigern ausdrücklich den Zugriff auf Anfragen außerhalb der zulässigen VPC-Endpunkte oder IP-Adressen. Stellen Sie sicher, dass Sie die Bucket-Richtlinie sorgfältig überprüfen, bevor Sie sie speichern.

Verwenden Sie eine Bucket-Richtlinie, um anzugeben, welche VPC-Endpunkte, VPC-Quell-IP-Adressen und externen IP-Adressen auf den S3-Bucket zugreifen können.

**Hinweis:**Eine VPC-Quell-IP-Adresse ist eine private IP-Adresse innerhalb einer VPC. Private Adressen sind über das Internet nicht erreichbar und können für die Kommunikation zwischen den Instances in Ihrer VPC verwendet werden. Eine private IP-Adresse kann beispielsweise die private IP-Adresse einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance sein.

Eine externe IP-Adresse ist eine öffentliche IP-Adresse, die sich innerhalb einer VPC oder außerhalb einer VPC befinden kann. Eine externe IP-Adresse kann beispielsweise die elastische oder öffentliche IP-Adresse einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance sein. Oder die externe IP-Adresse kann die IP-Adresse des NAT-Gateways oder Proxyservers einer VPC sein.

Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, es sei denn, die Anforderung stammt von bestimmten VPC-Endpunkten (aws:sourceVpce):

{
  "Id": "VPCe",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VPCe",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpce": [
            "vpce-1111111",
            "vpce-2222222"
          ]
        }
      },
      "Principal": "*"
    }
  ]
}

Hinweis:

Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, sofern die Anfrage nicht von bestimmten privaten IP-Adressen stammt (aws:VpcSourceIp):

{
  "Id": "VpcSourceIp",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VpcSourceIp",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "NotIpAddress": {
          "aws:VpcSourceIp": [
            "10.1.1.1/32",
            "172.1.1.1/32"
          ]
        }
      },
      "Principal": "*"
    }
  ]
}

**Hinweis:**Um diese Richtlinie mit der aws:VpcSourceIP-Bedingung zu verwenden, müssen Sie einen VPC-Endpunkt für Amazon S3 anhängen. Der VPC-Endpunkt muss an die Routing-Tabelle des Subnetzes der EC2-Instance angehängt sein und sich in derselben AWS-Region wie der Bucket befinden.

Die folgende Beispiel-Bucket-Richtlinie blockiert den Datenverkehr zum Bucket, es sei denn, die Anforderung stammt von bestimmten externen IP-Adressen (aws:SourceIp):

{
  "Id": "SourceIP",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SourceIP",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "11.11.11.11/32",
            "22.22.22.22/32"
          ]
        }
      },
      "Principal": "*"
    }
  ]
}

**Warnung:**Diese Beispiel-Bucket-Richtlinien verweigern ausdrücklich den Zugriff auf Anfragen außerhalb der zulässigen VPC-Endpunkte oder IP-Adressen. Selbst dem Benutzer, der die Bucket-Richtlinie eingegeben hat, kann der Zugriff auf den Bucket verweigert werden, wenn der Benutzer die Bedingungen nicht erfüllt. Stellen Sie daher sicher, dass Sie die Bucket-Richtlinie sorgfältig überprüfen, bevor Sie sie speichern. Wenn Sie versehentlich gesperrt werden, finden Sie weitere Informationen unter Ich habe versehentlich allen Zugriff auf meinen Amazon S3-Bucket verweigert. Wie erhalte ich wieder Zugriff?

Wenn Sie bestimmten Benutzern (innerhalb desselben AWS-Kontos) Zugriff auf den Bucket gewähren müssen, fügen Sie die folgende Aussage in den Condition-Block ein:

  • AROAEXAMPLEID ist die Rollen-ID einer IAM-Rolle, die Sie zulassen möchten
  • AIDAEXAMPLEID ist die Benutzer-ID eines IAM-Benutzers, den Sie zulassen möchten
  • 111111111111 ist die AWS-Konto-ID des Buckets, die die Anmeldeinformationen des Root-Benutzers des AWS-Kontos darstellt

Zum Beispiel:

"Condition": {
            "StringNotLike": {
                "aws:userId": [
                    "AROAEXAMPLEID:*",
                    "AIDAEXAMPLEID",
                    "111111111111"
                ]
            }
        }

Weitere Informationen zum Gewähren des Zugriffs auf bestimmte IAM-Rollen finden Sie unter So beschränken Sie den Amazon S3-Bucket-Zugriff auf eine bestimmte IAM-Rolle.

Ähnliche Informationen

VPC-Endpunkte

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren