Istnieje kilka sposobów ochrony zasobów tworzonych przez AWS CloudFormation.
Protect stosie
AWS CloudFormation trwa szablon opisujący żądane zasoby i wdraża go jako stosie zasobów. Po usunięciu stosu zasoby są również usuwane.
Dlatego pierwszą metodą jest kontrolowanie, którzy użytkownicy mają uprawnienia do usuwania stosu. Można to przypisać przez Zarządzanie tożsamością i dostępem (IAM).
Oto przykład z dokumentacji Controlling Access with AWS Identity and Access Management:
Polityka próbka że zaprzecza usunąć i aktualizacji działania stosu dla MyProductionStack:
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Deny",
"Action":[
"cloudformation:DeleteStack",
"cloudformation:UpdateStack"
],
"Resource":"arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/*"
}]
}
polityka może również require use of a Multi-factor Authentication (MFA) code przed wykonaniem wrażliwe operacje, takie jak usuwanie stosu.
ochrony zasobów
zasoby stworzone przez CloudFormation nadal mogą być usunięte/zmodyfikowane przez dowolnego użytkownika z odpowiednim pozwoleniem. Dlatego ważne jest, aby chronić ważne zasoby przed wpływem nieautoryzowanych użytkowników. AWS zaleca przyznanie najmniejszego przywileju, aby użytkownicy mieli tylko kontrolę nad zasobami, których potrzebują, i nic więcej.
Polityka CloudFormation Usunięcie
Polityka usunięcie określa środki, które powinny nie zostać usunięte, gdy stos jest usunięta.
Z CloudFormation documentation:
Z DeletionPolicy
przypisać można zachować lub (w niektórych przypadkach) backup zasobem gdy jego stos zostanie usunięty. Użytkownik określa atrybut DeletionPolicy
dla każdego zasobu, który ma być kontrolowany. Jeśli zasób nie ma atrybutu DeletionPolicy
, AWS CloudFormation domyślnie usuwa ten zasób.
Aby zachować zasób po usunięciu stosu, należy dla tego zasobu podać wartość Retain
. Możesz użyć zatrzymania dla dowolnego zasobu. Na przykład możesz zatrzymać wiadro Amazon S3 lub instancję Amazon EC2, aby móc nadal używać lub modyfikować te zasoby po usunięciu ich stosów.
Zazwyczaj służy do utrzymywania zasobów po celowym usunięciu stosu. Na przykład, zachowując wiadro Amazon S3 lub bazę danych Amazon RDS. Można go jednak również wykorzystać do zachowania zasobów, nawet jeśli stos zostanie przypadkowo usunięty.