Ho attivato la regola AWS Config s3-bucket-ssl-requests-only per le policy di bucket Amazon Simple Storage Service (Amazon S3) in modo da richiedere la crittografia durante il transito dei dati. Desidero assicurarmi che le mie policy di bucket rispettino questa regola.
Risoluzione
Amazon S3 consente sia richieste HTTP che richieste HTTPS. Per impostazione predefinita, Amazon S3 effettua richieste tramite la Console di gestione AWS, l'interfaccia a riga di comando AWS (AWS CLI) o HTTPS.
Per rispettare la regola s3-bucket-ssl-requests-only, verifica che le policy di bucket neghino esplicitamente l'accesso alle richieste HTTP. Le policy di bucket che consentono le richieste HTTPS senza negare esplicitamente le richieste HTTP potrebbero non essere conformi alla regola.
Per determinare le richieste HTTP o HTTPS in una policy di bucket, utilizza una condizione che controlli la chiave aws:SecureTransport. Quando imposti la condizione della chiave su true, Amazon S3 invia la richiesta tramite HTTPS. Per rispettare la regola s3-bucket-ssl-requests-only, crea policy di bucket che neghi esplicitamente l'accesso alle richieste HTTP quando la richiesta soddisfa la condizione "aws:SecureTransport": "false".
Policy di bucket conforme alla regola s3-bucket-ssl-requests-only
Questo esempio di policy di bucket è conforme alla regola s3-bucket-ssl-requests-only. La policy nega esplicitamente tutte le azioni sul bucket e sugli oggetti quando la richiesta soddisfa la condizione "aws:SecureTransport": "false":
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSSLRequestsOnly",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
},
"Principal": "*"
}
]
}
Policy di bucket non conforme alla regola s3-bucket-ssl-requests-only
Questa policy di bucket non è conforme alla regola s3-bucket-ssl-requests-only. Al posto di un'istruzione Deny esplicita, la policy consente l'accesso alle richieste che soddisfano la condizione "aws:SecureTransport": "true". Questa istruzione consente l'accesso anonimo a GetObject per tutti gli oggetti nel bucket se la richiesta utilizza HTTPS:
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "NOT-RECOMMENDED-FOR__AWSCONFIG-Rule_s3-bucket-ssl-requests-only",
"Action": "s3:GetObject",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
}
},
"Principal": "*"
}
]
}
Nota: utilizza la precedente policy di bucket solo quando il caso d'uso richiede l'accesso anonimo tramite HTTPS.
Informazioni correlate
Come utilizzare le policy dei bucket e applicare una difesa approfondita per proteggere i dati di Amazon S3