J'aime vraiment utiliser les commandes CLI et c'est ma routine quotidienne. Aujourd'hui, je vais vous expliquer "Comment creer un bucket S3 sur AWS" et "Mettre une politique de bucket S3" via CLI. Commencons...

La premiere chose, vous devez definir vos AWS_ACCESS_KEY et AWS_SECRET_ACCESS_KEY. Cela signifie que vous devez d'abord lancer la commande aws configure. Si vous faites cela, vous pouvez continuer.

Verifier d'abord les Buckets S3

Tout d'abord, nous devons nous assurer des buckets que nous avons. Quand je lance la commande aws s3 ls, elle retourne les buckets existants.

  ~ 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

Creer un Bucket S3

La commande de creation de bucket S3 est egalement simple et facile. C'est aws s3 mb. Faisons-le et listons a nouveau les buckets.

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

Maintenant, je veux lister a nouveau tous les buckets existants pour m'en assurer.

  ~ 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

Oui, je vois mon bucket nouvellement cree. Le nom du bucket est hello-this-is-new-bucket.

Verifier une Politique de Bucket sur un Bucket S3

Nous avons cree un bucket a l'etape precedente mais qu'en est-il de la politique du bucket ? D'abord, nous devons verifier s'il existe une politique ou non. Voici un exemple ;

  ~ 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

Le bucket fraichement cree n'a pas de politique par defaut. Maintenant, il est temps de creer une politique avec CLI.

Creer une Politique de Bucket

La politique doit etre au format JSON et vous pouvez creer un fichier JSON. Ma politique de bucket permet a tous les utilisateurs de recuperer n'importe quel objet de hello-this-is-new-bucket sauf ceux dans le secret-folder. Elle accorde egalement la permission put et delete a l'utilisateur "root" du compte 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/*"
      }
   ]
}

Appliquer une Politique de Bucket sur un Bucket S3

Appliquer une politique est egalement facile. Vous pouvez le voir ci-dessous.

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

Apres la commande put-bucket-policy, l'aws cli ne donne aucune sortie mais vous savez aussi comment verifier votre politique de bucket via CLI et vous pouvez verifier si vous voulez vous en assurer.

Merci beaucoup d'avoir lu cet article, bon codage !