DEV Community

JPL
JPL

Posted on • Edited on • Originally published at dev.to

Jednostavni CloudFormation template

Objasnjenje yaml fajla i njegovih komponenata koji su koristeni za kreiranje S3 bucketa

NAPOMENA: Za pisanje template-a, koristi se YAML, a pored YAML postoji i JSON. Nacin koristenja YAML mozete pronaci na tutorijalu. Ova pravila se koriste i pri pisanju template-a za CloudFormation.

AWSTemplateFormatVersion: "2010-09-09"

Description: Simple S3 bucket with ServerSideEncryption

Resources: 
S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
        BucketEncryption:
            ServerSideEncryptionConfiguration:
                    - ServerSideEncryptionByDefault:
                        SSEAlgorithm: AES256
Enter fullscreen mode Exit fullscreen mode

Na pocetku svako template-a mora da bude verzija formata template-a. Zadnja verzija koja se jos uvijek koristi je "2010-09-09". Ukoliko se to ne naglasi postoji mogucnost greske i nece se moci kreirati stack.


Description ili OPIS templatea- tj. sta sa ovim template-om pravimo bucket, EC2 instancu itd..

Description: Simple S3 bucket with ServerSideEncryption
Enter fullscreen mode Exit fullscreen mode

U sljedecem redu imamo:

Resources: 
S3Bucket:
    Type: AWS::S3::Bucket
Enter fullscreen mode Exit fullscreen mode

Resources -> govori nam koji mi to resurs ili resurse kreiramo za nas stack.

Listu resursa koje mozemo da kreiramo, mozemo pronaci na AWS linku. Svaki glavni resurs moze da ima svoje properties, pravila (rules), policy koji se mogu kreirati unutar template-a, a kasnije i validirati koristeci alat unutar VStudia CloudFOrmation linter.


S3Bucket -> naziv resursa koji se kreira, a nalazi se odmah ispod Resources, u istoj liniji sa Resources. To je vrlo bitno, jer YAML ima poseban nacin definisanja resursa,pravila za osobine (properties) za iste te resurse.

Primjecuje se da u ovom slucaju S3Bucket, ima uvuceno ispod Type, pa je onda uvuceno Properties, pa ispod Properties uvuceno BucketEncryption.. To znaci da osobine bucketa su uvucene, jer se odnose na bucket, a osobina BucketEncryption je serverska enkripcija samog bucketa tj. za enkripciju podataka na bucketu AWS ce automatski da enkriptuje.

Type: AWS::S3::Bucket
    Properties:
        BucketEncryption:
            ServerSideEncryptionConfiguration:
                    - ServerSideEncryptionByDefault:
                        SSEAlgorithm: AES256
Enter fullscreen mode Exit fullscreen mode

SSE-S3 tj. Server Side Encryption je najjednostavnija metoda enkripcije, koja je menadžovana i riješena od strane samog AWS provajdera. SSE-S3 enkripcija bazirana je na AES-256 enkripcijskom algoritmu, simetricni cifer. Zbog toga je naglasen algoritam u dodatnom opisu:

ServerSideEncryptionConfiguration:
                    - ServerSideEncryptionByDefault:
                        SSEAlgorithm: AES256
Enter fullscreen mode Exit fullscreen mode

Kada se koristi SSE-S3 enkrpicija, ne mozemo da koristimo ove enkripcijske kljuceve manuelno kada hocemo ili da ih koristimo u neke druge svrhe jer ne mozemo im pristupiti.
Kljuc je enkriptovan sam od sebe sa master kljucem koji se redovno rotira, a AWS se o tome brine.

AWS svojim korisnicima nudi SERVER SIDE ENKRIPCIJU, ali i KLIJENT SIDE ENKRIPCIJU tj. da klijent sam enkriptuje svoje podatke koristeci servis Key Management Service (KMS). U tom slucaju korisnik sam sebi postavlja pitanje:

-Da li podaci moraju da budu enkriptovani prije nego sto ih posaljemo na AWS? Onda je potrebno koristi KLIJENTSKU STRANU ENKRIPCIJE KORISTECI KEY MANAGEMENT SERVICE.

-Ukoliko nisu potrebni podaci biti zasticeni prije nego sto se posalju na AWS, onda se koristi i AWS enkripciju.

Također postoji i mogucnost hardverski sigurnosni modula koji pohranjuju korisnikove enkripcione kljuceve? Onda mozete koristi CloudHSM servis. Vise o CLoudHSM na linku

encryption-layers

Nakon sto se uradi upload ovog template-a koristeci CloudFormation, dobijemo rezultat automatski kreiranog S3 bucketa.

s3-template


Ukoliko bi ovaj proces radili preko AWS Console, koristili bi button "Create Bucket", a zatim bi nam se pojavile opcije da unesemo ime po svom izboru i da izaberemo enkripciju bucketa.

Kreiranje bucketa

s3-bucket-conosle1

Deafultna enkripcija SSE-S3

Opcija SSE-S3 je defaultna opcija pri kreiranju S3 Bucketa, ali kada pravimo template, mozemo to da definisemo.

s3-console-default-encyprtion-opcija

Top comments (0)