AWS CloudFormation StackSets w organizacji środowiska AWS

W tym zadaniu konfigurujemy AWS CloudFormation StackSets. Dowiesz się z niego przede wszystkim, w jaki sposób dzięki CloudFormation StackSets możesz w łatwy sposób jednocześnie wdrażać konfigurację na wielu regionach i kontach AWS.

Funkcjonalność ta może być przydatna, kiedy planujesz skonfigurować wiele kont czy regionów w ten sam sposób (np. wdrożyć ten sam zbiór Ruli w usługi Config).

Tworząc bezpieczne środowisko AWS, CloudFormation StackSets jest bardzo przydatnym elementem.

Video Tutorial


Co jest Ci potrzebne do wykonania tego zadania:

  • Odpalona i działające organizacja AWS,
  • Dodatkowe konta, na których będziesz deployować stacksety,
  • Opcjonalnie, konta mogą być pogrupowane w Organizational Unitach,
  • Template, który chcesz wdrożyć (na początek możesz wykorzystać przykład opisany poniżej),

KROKI DO WYKONANIA TEGO ZADANIA

KROK 1: Włącznie CloudFormation StackSets w AWS Organizations

Tak samo jak w przypadku CloudTrail’a, który omawiany był w poprzednim kroku, tak teraz, trzeba w pierwszej kolejności włączyć CloudFormation StackSets na poziomie AWS Organizations.

Aktywacja CloudFormation StackSets

Dzięki temu będziesz w stanie dalszych krokach wdrażać konfigurację na wiele kont i regionów AWS.

KROK 2: Wybrać konta lub OU, na których będziesz wdrażać StackSet-y

Tutaj decyzja jest po Twojej stronie, gdzie jak dzielisz swoje konta AWS. W zależności od tego, czy konfiguracje będziesz wdrażać, wybierając poszczególne konta AWS, czy na wybranych Organizational Unitach (OU), potrzebujesz zebrać odpowiednie ID-ki.

W demo z video operuję na poziomie OU, zatem jeśli chcesz zrobić tak samo, zapisz sobie ID OU, dla których będziesz wdrażać stack sety.

To samo tyczy się również wyboru regionów, czy decydujesz się na wdrożenie konfiguracji wszędzie, czy może jednak będą to konkretne regiony.

Pamiętaj, że w każdym momencie możesz zmieniać zakres i w późniejszych etapach np. dodawać kolejne regiony do danego stack set’u.

KROK 3: Implementacja AWS CloudFormation StackSets

Teraz pozostaje Ci jz tylko wdrożyć wybrany przez siebie template.

Jeśli nie masz obecnie nic pod ręką, możesz spróbować z wdrożeniem tego mechanizmu tagowania maszyn, który zaprezentowany jest w powyższym nagraniu.

Template możesz pobrać, bądź tak jak w nagraniu wskazać bezpośrednio z poniższego adresu:

https://piratescloud-public.s3.eu-west-1.amazonaws.com/Templates/StackSet-TagEC2.yaml

KROK 4: Zabezpieczenie konfiguracji AWS CloudFormation StackSets

Teraz jeśli chcesz uniknąć sytuacji, gdy ktoś będzie próbował popsuć Twoja konfigurację, to musisz odpowiednio się zabezpieczyć.

Jednym z pomysłów na to może być wykorzystanie Service Control Policies, aby nałożyć pewne ograniczenia na możliwość edycji czy zmian dla poszczególnych elementów.

Tak jak przedstawione to zostało w nagraniu, dzięki zastosowaniu pewnej ujednoliconej konwencji nazewniczej można z wykorzystaniem SCP ograniczyć możliwość modyfikacji.

Poniżej przykład SCP, która uniemożliwia modyfikacje EventBridge Rule, które w nazwie mają przedrostek GOV-*.

{
  "Sid": "GOVDenyGovRulesMods",
  "Effect": "Deny",
  "Action": [
    "events:DeleteRule",
    "events:DisableRule",
    "events:EnableRule",
    "events:PutRule",
    "events:PutTargets",
    "events:RemoveTargets"
  ],
  "Resource": [
    "arn:aws:events:*:*:rule/GOV-*"
  ],
  "Condition": {
    "ArnNotLike": {
      "aws:PrincipalArn": [
        "arn:aws:iam::*:role/OrganizationAccountAccessRole",
        "arn:aws:iam::*:role/GOV-OrganizationAccountAccessRole",
        "arn:aws:iam::*:role/stacksets-exec-*"
      ]
    }
  }
}
Przykład konfiguracji SCP ograniczającej modyfikację EventBridge Rule

Pamiętaj, że to od Ciebie zależy, w jaki sposób będziesz opisywać te SCP, obiekty itp.

Jest to element, który trzeba sobie wcześniej poukładać.

Gratulacje!

Masz swój pierwszy StackSet


Poprzednia