Direkt zum Inhalt

Wie erlaube ich nur bestimmten VPC-Endpunkten oder IP-Adressen den Zugriff auf meinen Amazon S3-Bucket?

Lesedauer: 3 Minute
0

Ich möchte nur Datenverkehr von bestimmten Amazon Virtual Private Cloud (Amazon VPC)-Endpunkten oder IP-Adressen zu meinem Amazon Simple Storage Service (Amazon S3)-Bucket zulassen.

Lösung

Verwende eine Bucket-Richtlinie, um die VPC-Endpunkte, privaten IP-Adressen oder öffentlichen IP-Adressen anzugeben, die auf den S3-Bucket zugreifen können.

Warnung: Die folgenden Beispiel-Bucket-Richtlinien verweigern explizit den Zugriff auf bestimmte Anforderungen außerhalb der zulässigen VPC-Endpunkte oder IP-Adressen. Prüfe die Bucket-Richtlinien, um festzustellen, ob sie sich auf Anforderungen im Zusammenhang mit der Konsole auswirken.

Wenn die Richtlinie den Zugriff auf alle S3-Aktionen verweigert, wirst du aus deinem Bucket ausgesperrt. Bevor du die Bucket-Richtlinie speicherst, solltest du sie unbedingt überprüfen. Wenn du dich aus dem Bucket aussperrst, findest du weitere Informationen unter Wie kann ich wieder auf meinen Amazon S3-Bucket zugreifen, nachdem ich versehentlich allen Zugriff verweigert habe?

Den Zugriff für bestimmte VPC-Endpunkte beschränken

Um nur Datenverkehr von den von dir angegebenen VPC-Endpunkten zuzulassen, verwende den Schlüssel aws:SourceVpce in der Bucket-Richtlinie. Die folgende Beispiel-Bucket-Richtlinie verweigert Upload-Berechtigungen für den Bucket, es sei denn, die Upload-Anforderung kommt von den VPC-Endpunkten vpce-1111111 oder vpce-2222222:

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

Um die vorhergehende Richtlinie mit der Bedingung aws:sourceVpce zu verwenden, füge einen VPC-Gateway-Endpunkt für Amazon S3 an die Routing-Tabelle des Subnetzes der Amazon Elastic Compute Cloud (Amazon EC2)-Instance an. Der Endpunkt muss sich in derselben AWS-Region wie der Bucket befinden.

Den Zugriff für bestimmte private IP-Adressen beschränken

Um nur Datenverkehr von den von dir angegebenen privaten IP-Adressen zuzulassen, verwende den Schlüssel aws:VpcSourceIp in der Bucket-Richtlinie. Die folgende Beispiel-Bucket-Richtlinie verweigert Upload-Berechtigungen für den Bucket, es sei denn, die Upload-Anforderung kommt von den privaten IP-Adressen 10.1.1.1/32 oder 172.1.1.1/32:

{  
  "Id": "VpcSourceIp",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "VpcSourceIp",  
      "Action": "s3:PutObject",  
      "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": "*"  
    }  
  ]  
}

Um die vorhergehende Richtlinie mit der Bedingung aws:VpcSourceIP zu verwenden, musst du einen VPC-Gateway-Endpunkt für Amazon S3 an die Routing-Tabelle der EC2-Instance anfügen. Der Endpunkt muss sich in derselben Region wie der Bucket befinden.

Den Zugriff für bestimmte öffentliche IP-Adressen beschränken

Um nur Datenverkehr von den von dir angegebenen öffentlichen IP-Adressen zuzulassen, verwende den Schlüssel aws:SourceIp in der Bucket-Richtlinie. Die folgende Beispiel-Bucket-Richtlinie verweigert Upload-Berechtigungen für den Bucket, es sei denn, die Upload-Anforderung kommt von den öffentlichen IP-Adressen 11.11.11.11/32 oder 22.22.22.22/32:

{  
  "Id": "SourceIP",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceIP",  
      "Action": "s3:PutObject",  
      "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": "*"  
    }  
  ]  
}

Um bestimmten AWS Identity and Access Management (IAM, Identiäts- und Zugriffsmanagement)-Entitäten desselben AWS-Kontos den Zugriff auf den Bucket zu ermöglichen, füge den Schlüssel aws:PrincipalArn in den Block Bedingung der Richtlinie ein:

"Condition": {  
    "ArnNotLike": {  
        "aws:PrincipalArn": [  
            "arn:aws:iam::123456789012:role/role-name",  
            "arn:aws:iam::123456789012:user/user-name",  
            "arn:aws:iam::123456789012:root"  
        ]  
    }  
}

Damit Benutzer VPC-Endpunkte oder IP-Adressen verwenden können, um S3-Aktionen im Bucket auszuführen, musst du explizit Berechtigungen auf Benutzerebene zulassen. Du kannst entweder eine IAM-Richtlinie oder eine andere Anweisung in der Bucket-Richtlinie ändern, um Berechtigungen auf Benutzerebene zuzulassen.

AWS OFFICIALAktualisiert vor einem Jahr