Mi piace molto usare i comandi CLI ed è la mia routine quotidiana. Oggi ti spiegherò "Come creare un Bucket S3 su AWS" e "Impostare una Policy su un Bucket S3" via CLI. Iniziamo...

La prima cosa, devi impostare il tuo AWS_ACCESS_KEY e AWS_SECRET_ACCESS_KEY. Significa che dovresti eseguire il comando aws configure prima. Se lo fai, puoi continuare.

Controlla Prima i Bucket S3

Prima di tutto, dobbiamo assicurarci di quali bucket abbiamo. Quando eseguo il comando aws s3 ls, restituirà i bucket esistenti.

➜  ~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2021-04-26 11:02:08 www-ercanermis-com

Creare un Bucket S3

Il comando per creare un Bucket S3 è anche semplice e facile. È aws s3 mb. Facciamolo ed elenchiamo di nuovo i bucket.

➜  ~ aws s3 mb s3://hello-this-is-new-bucket
make_bucket: hello-this-is-new-bucket

Ora, voglio elencare di nuovo tutti i bucket esistenti per sicurezza.

➜  ~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2022-07-17 14:23:29 hello-this-is-new-bucket
2021-04-26 11:02:08 www-ercanermis-com

Sì, vedo il mio bucket appena creato. Il nome del bucket è hello-this-is-new-bucket.

Controllare una Policy su un Bucket S3

Abbiamo creato un bucket nel passaggio precedente, ma per quanto riguarda la policy del bucket? Prima di tutto, dobbiamo controllare se esiste già una policy o meno. Ecco un esempio;

➜  ~ aws s3api get-bucket-policy --bucket hello-this-is-new-bucket

An error occurred (NoSuchBucketPolicy) when calling the GetBucketPolicy operation: The bucket policy does not exist

Il bucket appena creato non ha alcuna policy di default. Ora, è il momento di creare una policy con la CLI.

Creare una Policy per il Bucket

La policy deve essere in formato JSON e puoi creare un file JSON. La mia policy consente a tutti gli utenti di recuperare qualsiasi oggetto da hello-this-is-new-bucket eccetto quelli nella secret-folder. Concede anche i permessi put e delete all'utente "root" dell'account AWS "1234-5678-9012".

my-s3-bucket-policy.json:
{
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": "*",
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
      },
      {
         "Effect": "Deny",
         "Principal": "*",
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::hello-this-is-new-bucket/secret-folder/*"
      },
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:root"
         },
         "Action": [
            "s3:DeleteObject",
            "s3:PutObject"
         ],
         "Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
      }
   ]
}

Applicare una Policy al Bucket S3

Applicare una policy è anche facile. Lo vedi qui sotto.

aws s3api put-bucket-policy --bucket hello-this-is-new-bucket --policy file://my-s3-bucket-policy.json

Dopo il comando put-bucket-policy, la aws cli non fornisce alcun output ma puoi anche sapere come controllare la policy del tuo bucket via CLI e puoi verificare se vuoi essere sicuro.

Grazie mille per aver letto questo articolo, buon coding!