Perché il mio sito web statico su Amazon S3 è ancora accessibile da indirizzi IP pubblici anche se ho limitato l'accesso a uno specifico Amazon VPC?

4 minuti di lettura
0

Utilizzo Amazon Simple Storage Service (Amazon S3) per ospitare il mio sito web statico. Ho allegato un criterio di bucket che limita l'accesso solo a uno specifico Amazon Virtual Private Cloud (Amazon VPC). Tuttavia, posso ancora accedere al sito web da indirizzi IP pubblici.

Risoluzione

Prima di risolvere il problema, assicurati di completare i seguenti passaggi:

  • Cancella la cache del browser web o del proxy in modo da visualizzare la configurazione più recente.
  • Conferma che l'istanza di Amazon Elastic Compute Cloud (Amazon EC2) da cui accedi al bucket si trova nella stessa Regione AWS del bucket.
  • Associa l'endpoint VPC alla tabella delle rotte dell'istanza EC2 che usi. In questo modo, il traffico si associa all'ID VPC a cui fa riferimento il criterio del bucket.

Controlla la policy del bucket

Conferma che il criterio del bucket consente l'accesso al bucket dalla VPC. Per verificare questo aspetto, controlla le dichiarazioni contenute nella polizza del tuo secchio. Ad esempio, la seguente dichiarazione sulla policy del bucket consente s3:getObject a condizione che la richiesta provenga da vpc-id123456.

{
  "Version": "2012-10-17",
  "Id": "Policy1",
  "Statement": \[{
    "Sid": "Access-to-Trusted-VPC-only",
    "Effect": "Allow",
    "Principal": "\*",
    "Action": "s3:GetObject\*",
    "Resource": "arn:aws:s3:::awsexamplebucket/\*",
    "Condition": {
      "StringEquals": {
        "aws:sourceVpc": "vpc-id123456"
      }
    }
  }\]
}

**Nota:**L'hosting di siti Web statici consente richieste non autenticate (anonime). Tuttavia, se un utente si autentica, puoi concedergli l'accesso in base alle sue credenziali. Ad esempio, supponiamo che un utente si autentichi con un ruolo AWS Identity and Access Management (IAM) che ha accesso completo ad Amazon S3. Questo utente può comunque scaricare oggetti al di fuori della VPC, nonostante il seguente criterio del bucket. Per una policy dei bucket più restrittiva, consulta Limitazione dell'accesso a un VPC specifico. La limitazione dell'accesso a una specifica VPC nega l'accesso anche agli utenti amministratori o root dell'account AWS per le richieste che non provengono dalla VPC.

Controlla l'elenco di controllo degli accessi agli oggetti (ACL)

Dopo aver confermato che il criterio del bucket è corretto, controlla se le ACL degli oggetti consentono l'accesso pubblico. Se le ACL di alcuni oggetti consentono l'accesso pubblico e vuoi ignorare le ACL, esegui una delle seguenti azioni:

  • Configura le impostazioni di accesso pubblico per il singolo bucket o per il tuo account AWS.
  • Aggiungi una dichiarazione esplicita di rifiuto al criterio del bucket.

Per sovrascrivere gli ACL degli oggetti, utilizza la consolle Amazon S2 per configurare le impostazioni di accesso pubblico del singolo bucket o le impostazioni di accesso pubblico del tuo account. Seleziona le seguenti opzioni:

  • Blocca l'accesso pubblico a bucket e oggetti concesso tramite nuove liste di controllo degli accessi (ACL)
  • Blocca l'accesso pubblico a bucket e oggetti concesso tramite qualsiasi lista di controllo degli accessi (ACL)

Nota: Puoi anche utilizzare l'AWS Command Line Interface (AWS CLI), un AWS SDK o l'Amazon S3 REST API per configurare le impostazioni di accesso pubblico del bucket. Per ulteriori informazioni, vedi Bloccare l'accesso pubblico allo storage Amazon S3.

Per utilizzare un criterio di bucket per ignorare le ACL degli oggetti, aggiungi un'istruzione che neghi esplicitamente le azioni quando la richiesta non proviene dalla VPC. Ad esempio, la seguente policy del bucket include un'istruzione che nega esplicitamente s3:getObject quando la richiesta non proviene da vpc-id123456.

Avvertenza: Poiché questo esempio di criterio del bucket include una dichiarazione di rifiuto esplicito, rivedi i parametri per il rifiuto esplicito dell'accesso prima di salvare il criterio. Se vieni bloccato accidentalmente, vedi Ho negato accidentalmente a tutti l'accesso al mio bucket Amazon S3. Come posso riottenere l'accesso?

{
  "Version": "2012-10-17",
  "Id": "Policy1",
  "Statement": \[{
      "Sid": "Access-to-Trusted-VPC-only",
      "Effect": "Allow",
      "Principal": "\*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/\*",
      "Condition": {
        "StringEquals": {
          "aws:sourceVpc": "vpc-id123456"
        }
      }
    },
    {
      "Sid": "Deny-Access-Except-For-Trusted-VPC",
      "Effect": "Deny",
      "Principal": "\*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/\*",
      "Condition": {
        "StringNotEquals": {
          "aws:sourceVpc": "vpc-id123456"
        }
      }
    }
  \]
}

Informazioni correlate

Generatore di policy AWS

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa