Μου αρέσει πολύ να χρησιμοποιώ εντολές CLI και είναι η καθημερινή μου ρουτίνα. Σήμερα, θα σου πω «Πώς δημιουργείς ένα S3 Bucket στο AWS» και «Πώς βάζεις ένα S3 Bucket Policy» μέσω CLI. Ας ξεκινήσουμε...

Το πρώτο πράγμα, πρέπει να ορίσεις τα AWS_ACCESS_KEY και AWS_SECRET_ACCESS_KEY. Αυτό σημαίνει ότι πρέπει να τρέξεις την εντολή aws configure προηγουμένως. Αν το κάνεις αυτό, μπορείς να συνεχίσεις.

Έλεγξε τα S3 Buckets Πρώτα

Πρώτα απ' όλα, πρέπει να βεβαιωθούμε ποια buckets έχουμε. Όταν τρέξω την εντολή aws s3 ls, θα επιστρέψει τα υπάρχοντα buckets.

➜  ~ 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

Δημιούργησε ένα S3 Bucket

Η εντολή δημιουργίας S3 Bucket είναι επίσης απλή και εύκολη. Είναι η aws s3 mb. Ας το κάνουμε και ας δούμε ξανά τα buckets.

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

Τώρα, θέλω να δω ξανά όλα τα υπάρχοντα buckets για να βεβαιωθώ.

➜  ~ 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

Ναι, βλέπω το νεοδημιουργημένο μου bucket. Το όνομα του bucket είναι hello-this-is-new-bucket.

Έλεγξε το Bucket Policy σε ένα S3 Bucket

Δημιουργήσαμε ένα bucket στο προηγούμενο βήμα, αλλά τι γίνεται με το bucket policy; Πρώτα απ' όλα, πρέπει να ελέγξουμε αν υπάρχει ήδη κάποιο policy ή όχι. Ορίστε ένα παράδειγμα:

➜  ~ 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

Το φρεσκοδημιουργημένο bucket δεν έχει policy από προεπιλογή. Τώρα, ήρθε η ώρα να δημιουργήσουμε ένα policy με CLI.

Δημιούργησε ένα Bucket Policy

Το policy πρέπει να είναι σε JSON format και μπορείς να δημιουργήσεις ένα JSON αρχείο. Το bucket policy μου επιτρέπει σε όλους τους χρήστες να ανακτούν οποιοδήποτε object στο hello-this-is-new-bucket εκτός από αυτά στον secret-folder. Επίσης, παρέχει δικαιώματα put και delete στον "root" χρήστη του AWS account "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/*"
      }
   ]
}

Εφάρμοσε ένα Bucket Policy στο S3 Bucket

Η εφαρμογή ενός policy είναι επίσης εύκολη. Μπορείς να το δεις παρακάτω.

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

Μετά την εντολή put-bucket-policy, το aws cli δεν δίνει κάποιο output, αλλά μπορείς επίσης να ξέρεις πώς να ελέγξεις το bucket policy σου μέσω CLI και μπορείς να το ελέγξεις αν θέλεις να βεβαιωθείς.

Ευχαριστώ πολύ που διάβασες αυτό το άρθρο, καλή κωδικοποίηση!