Skip to content

Commit

Permalink
added 16-23 for chapter 4
Browse files Browse the repository at this point in the history
  • Loading branch information
fatich committed Aug 14, 2023
1 parent 2c4c42a commit a63f88c
Show file tree
Hide file tree
Showing 9 changed files with 341 additions and 0 deletions.
Binary file modified 04-detailed-review-of-featured-services/.DS_Store
Binary file not shown.
32 changes: 32 additions & 0 deletions 04-detailed-review-of-featured-services/16-usage-of-cloudtrail.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# 17. CloudTrail
AWS CloudTrail, denetim, güvenlik izleme ve operasyonel sorun giderme sağlar. CloudTrail, AWS hizmetlerinde kullanıcı etkinliğini ve API çağrılarını olay olarak kaydeder. CloudTrail etkinlikleri, "kim, neyi, nerede ve ne zaman yaptı?" sorularını yanıtlamanıza yardımcı olur.

CloudTrail iki tür olayı kaydeder:
- Amazon Simple Storage Service (Amazon S3) paketleri oluşturma veya silme gibi kaynaklar üzerinde kontrol düzlemi eylemlerini yakalayan yönetim olayları.
- Amazon S3 nesnesini okuma veya yazma gibi bir kaynak içindeki veri düzlemi eylemlerini yakalayan veri olayları.

CloudTrail bu olayları üç özellikte kullanır:

- Olay geçmişi, hiçbir ek ücret ödemeden 90 günlük kontrol düzlemi eylemleri geçmişi sağlar. Temel denetim yeteneklerinin bir parçası olarak CloudTrail, değişmezliği etkinleştirmek için şifreleme ve günlük dosyası doğrulaması için müşteri tarafından yönetilen anahtarlar sağlar. Yalnızca ücretli özellikleri kullandığınız kadar ödersiniz. Aşağıdaki özelliklerden bazıları ücretsiz olarak sağlanmaktadır. Asgari ücret veya ön taahhüt gerekmez.
- CloudTrail Lake, denetim ve güvenlik amacıyla AWS'de kullanıcı ve API etkinliğini yakalamak, depolamak, erişmek ve analiz etmek için yönetilen bir veri gölüdür. Etkinlik günlüklerinizi (kontrol düzlemi ve veri düzlemi) yedi yıla kadar toplayabilir, değişmez bir şekilde saklayabilir ve arama ve analiz için günlükleri saniyeler içinde sorgulayabilirsiniz. BT denetçileri, denetim gereksinimlerini karşılamak için CloudTrail Lake'i tüm etkinliklerin değişmez bir kaydı olarak kullanabilir. Güvenlik yöneticileri, kullanıcı etkinliğinin dahili ilkelere uygun olmasını sağlayabilir ve DevOps mühendisleri, yanıt vermeyen bir Amazon Elastic Compute Cloud (EC2) örneği veya erişimin reddedilen bir kaynak gibi operasyonel sorunları giderebilir.
- İzler, Amazon CloudWatch Logs ve Amazon EventBridge'e isteğe bağlı teslimat ile bu olayları Amazon S3'te teslim edip depolayarak AWS hesap etkinliklerinin kaydını yakalar. Bu olaylar, güvenlik izleme çözümlerinize eklenebilir. CloudTrail tarafından yakalanan günlükleri aramak ve analiz etmek için kendi üçüncü taraf çözümlerinizi veya Amazon Athena gibi çözümlerinizi kullanabilirsiniz. AWS Organizations'ı kullanarak tek bir AWS hesabı veya birden çok AWS hesabı için yollar oluşturabilirsiniz. AWS CloudTrail Insights, API çağrı hacimlerindeki anormal davranışlar için kontrol düzlemi olaylarını analiz eder ve kaynak sağlamadaki ani artışlar veya periyodik aktivitedeki boşluklar gibi olağandışı etkinlikleri tespit edebilir.

CloudTrail ile CloudWatch servisinin karıştırılmamasına dikkat edilmelidir. **CloudTrail** servisi AWS hesabınızın **yönetim, uyumluluk ve operasyonel risk denetimini** sağlarken **CloudWatch** AWS hesabınızdaki kaynakların **performans ve hatalarını izlemeyi** sağlayan monitoring servisidir.

## 17.1. CloudTrail Servisinin Kullanımı
![281](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/f3c9a8eb-061b-4c09-80e0-128d9bcea749)

CloudTrail kontrol paneline ulaştığımızda Şekil: 60’takı gibi bir ekran bizi karşılar. Dashboard alt başlığı altında son 90 günlük ana olayların kaydı bulunur. Benzer şekilde Event History alt başlığında da 90 günlük kayıtların tamamı bulunur. Dashboard buradan ana kayıtları çeker ve kendi üzerinde gösterir.

Trails başlığı altında ise trail oluşturulur. Bazı durumlarda kayıtların 90 günden fazla tutulması gerekmektedir. Bu kayıtların toplanıp S3 bucket’larında saklanmasını trail hizmeti sağlar. 90 günden fazla kayıt tutulmadaki temel sebepler ise firma politikaları veya güvenlik amaçlı olabilmektedir.

“Create a trail” diyerek ilk trail’i oluşturmaya başlayabiliriz. Sonrasında aşağıdaki adımlar izlenebilir:

- İlk olarak bu hizmet için bir isim beklemektedir. “ilkTrail” olarak atama yapalım.
- Sonrasında depolama konumu isteyecektir. Yeni bir S3 bucket oluştur seçeneğini kullanalım.
- “Customer managed AWS KMS key” alanında “New” diyelim ve girdi alanına “cloudWatckKey” girelim.
- Events başlığı altında hangi tip kayıtların tutulmasını istediği soruları. Data-event ve Insights event isteğe göre tutulabilir. Bu aşamada sadece “Managment events” seçeneği ile devam edelim.
- “API activity” olarak hem Read (Okuma) hem de Write (Yazma) işlemlerinin kayıtlarını tutmak istediğimizi belirtelim. ‒ En son aşamada “Create” ile oluşturalım.
- S3 servisine gittiğimizde logların tutulması için bir bucket oluşturulduğu görünür. Bölge, yıl, ay ve günlere göre klasör edilmiştir. Kayıtlara ulaştığımızda JSON formatında kayıt dosyalarımızın oluştuğu görülecektir.

Bu adımlar sayesinde 90 günü aşan kayıtlar tutulabilir.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 18. CloudFormation
Önceki başlıkta en temelinde bir web uygulamasının front, back ve veri tabanı olmak üzere 3 temel bileşenden oluştuğundan bahsetmiştik. Bu bileşenler bir altyapı oluştururken instance’ler, gateway’ler, router tabloları gibi birçok alt bileşen kullanmanız gerekecektir. Bu işlem birden fazla sefer yapılıyor ise her seferinde bileşenler oluşturulup sonrasında da gerekli bağlantıları kurmak zahmetli bir hal alacaktır.

AWS CloudFormation, altyapıyı kod olarak ele alarak ilgili AWS ve üçüncü taraf kaynaklarından oluşan bir koleksiyonu modellemenin, bunları hızlı ve tutarlı bir şekilde sağlamanın ve yaşam döngüleri boyunca yönetmenin kolay bir yolunu sunar. Bir CloudFormation şablonu, istediğiniz kaynakları ve bağımlılıklarını açıklar, böylece bunları bir yığın olarak başlatabilir ve yapılandırabilirsiniz. Kaynakları tek tek yönetmek yerine, bir yığının tamamını tek bir birim olarak, ihtiyaç duyduğunuz sıklıkta oluşturmak, güncellemek ve silmek için bir şablon kullanabilirsiniz. Birden çok AWS hesabı ve AWS bölgesi genelinde yığınları yönetebilir ve sağlayabilirsiniz.

CloudFormation temelde iki bileşenden oluşur. Bunlardan biri **CloudFormation template** diğeri ise **CloudFormation Stack**’tir.

İstediğiniz hizmet veya uygulama mimarileri için JSON veya YAML formatında template’ler oluşturabiliriz. AWS CloudFormation’ın bu template üzerinde bulunan hizmetlerin veya uygulamaların hızlı/güvenilir bir şekilde kurulmasını sağlayabilirsiniz. (stack olarak da adlandırılır.) Ayrıca stack’leri gerektiğinde kolayca güncelleyebilir veya çoğaltabilirsiniz.

Oluşturulan template dosyası yerel makinede veya S3 bucket’inde tutulabilir. Sonrasında ise CloudFormation aracılığıyla bu template dosyasını kullanarak bir stack yaratırsınız. AWS sizin belirlediğiniz kaynakları, belirlediğiniz şekilde oluşturacaktır.

Bununla beraber stack oluşturulmuş olsa bile template üzerinde yapılan bir güncelleme hazırlanmış stack üzerine uygulanabilir.

Bir template dosyası aşağıdaki bileşenleri içerebilir:

- ***Version:*** Template’e versiyon numarası atayarak gelişimini takip etmenize ve birden fazla versiyonunu yaratmanıza imkân sağlar.
- ***Description:*** Template ile ilgili açıklama girmek istenildiği zaman kullanılır. Örneğin bu template neden oluşturuldu, amacı nedir, sonucunda ne olacak tarzı yazılı bir açıklama girilebilir.
- ***MetaData:*** Template’in temel özelliklerini ve template hakkında ek bilgiler tutabilirsiniz. Örneğin AWS::CloudFormation::Designer attribute’u ile bu template’i kim oluşturuldu bilgisi tutulabilir.
- ***Parameters:*** Yaratılacak kaynaklarla ilgili seçilmesi gereken seçenekleri bu kısımda belirleyebilirsiniz. Örneğin EC2 sanal makine yaratılan bir template’e parameters kısmında “KeyPair seçimi” parametresini girerseniz daha sonra bu template’den 177 yaratılacak bir stack’in yaratılma aşamasında kullanıcıya hangi keypair’i kullanmak istediğini soracak ve kullanıcın girdiği değer o sanal makine yaratılırken kullanılacaktır.
- ***Conditions:*** Şartlar bu kısımda belirlenir. Eğer şu seçildiyse bunu yap ama seçilmediyse şunu yap şeklinde koşula göre yön belirleyebilirsiniz.
- ***Outputs:*** Stack yaratımı sonucunda kullanıcıya geri bildirmek istediğiniz bilgileri bu kısımda belirlersiniz. Örneğin, yaratılan EC2 sanal makinelerinin ip adres bilgilerini ekranda kullanıcıya göstermek isterseniz bunu Outputs kısmında seçmeniz gerekmektedir.
- ***Resources:*** Her template’de mutlaka bulunması şart olan tek alandır. O template ile yaratılmasını istediğiniz kaynakları belirlersiniz.

## 18.1. CloudFormation Servisinin Kullanımı
“Create a stack” diyerek ilk stack’imizi oluşturalım. Bu aşamada template dosyasını AWS tarafından sunulan hazır bir template olarak devam edeceğiz. Normalde template dosyalarının JSON formatında olduğunu belirtmiştik. Ancak AWS tarafından sunulan “Template Designer” ile bir GUI üzerinden bu dosyalar oldukça kolay bir şekilde oluşturulabilir. “Create a stack” dedikten sonra aşağıdaki adımları izleyelim:

- “Prerequisite - Prepare template” başlığı altında “Template is ready” opsiyonu seçili iken Amazon S3 URL bilgisi ile devam edeceğimiz şekilde ayarlama yapalım.
- “Amazon S3 URL” alanına “https://s3-us-west-2.amazonaws.com/cloudformationtemplates-us-west-2/VPC_AutoScaling_and_ElasticLoadBalancer.template” bilgisini girelim. Bu adresi tarayıcıdan açtığımızda JSON formatında bir template dosyası olduğunu görebiliriz.
- View in Designer dediğimizde Şekil: 61’deki gibi görünüm oluşacaktır.
![282](https://github.com/fatihes1/AWS-ile-Bulut-Bilisimin-Temelleri/assets/54971670/b1a93f95-2c27-46ee-a6f1-3553161d26cd)

- Stack için bir isim girmemiz beklenmektedir. İsim alanına “ilkCFstack” girelim.
- Instance sayısı olarak 1 ve türü olarak ise t2.micro’yu seçelim.
- “KeyName” değeri olarak daha önceki başlıklarda oluşturduğumuzu key’i (windows sanal makinesine bağlanmak için oluşturulan) seçelim.
- VPC olarak “ilkVPC” ismini verdiğimiz VPC’yi subnet’ler altında da sadece public olan subnet’leri seçelim.
- Permission alanında eğer ki bir yetki gereksinimi varsa gerekli IAM role seçilir, bu template için bir yetki gereksinimi yoktur.
- “Stack creation options” başlığı altında “Time-out” özelliği bulunmaktadır. Belirtilen süre içerisinde stack oluşumu tamamlanmaz ise o ana kadar oluşan tüm kaynakları siler ve oluşturma işlemini durdurur. Şimdilik bu özellikte kapalı olsun.
- “Stack failure options” ise stack oluşturulurken bir hata oluşması durumunda oluşturma işlemini tamamıyla durdurup kaynakları silsin mi yoksa o hatalı adımı atlayıp devam mı etsin seçeneği sunulur.

Belirtilen URL ile oluşturulacak stack oluşumu biraz süre alabilir. 10-15 dk kadar geçen bir süreden sonra stack tamamıyla oluştuğunda “Outputs” ekranında bize bir URL verir. Bu URL’e tarayıcıdan gittiğimizde AWS tarafından bize dönen “Tebrikler” web sayfası görüntülenir.

Stack silinmesi durumunda ise stack’i oluşturan tüm kaynaklar silinmeye başlar, böylelikle kullanıcının tüm kaynakları tek tek bulup kaldırmanıza gerek kalmamış olur.

Loading

0 comments on commit a63f88c

Please sign in to comment.