2015-09-16 4 views
5

У меня есть стек, который создает трехуровневое приложение. Я хочу защитить свой стек от случайного удаления. Есть ли способ защитить стек AWS CloudFormation?Как защитить стек AWS CloudFormation от удаления?

Также я хотел бы знать, как, даже если мой стек удаляется, как я могу остановить ресурсы, связанные с удалением стека.

ответ

5

Существует несколько способов защиты ресурсов, созданных AWS CloudFormation.

Защита стека

AWS CloudFormation принимает шаблон, который описывает требуемые ресурсы и разворачивает его в качестве стека ресурсов. Когда стек удаляется, ресурсы также удаляются.

Таким образом, первым методом является контроль над тем, какие пользователи имеют разрешение на удаление стека. Это можно назначить через Управление идентификацией и доступом (IAM).

Вот пример из Controlling Access with AWS Identity and Access Management документации:

Политик образца, отрицающий удалять и обновлять действия стеки для MyProductionStack:

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
     "Effect":"Deny", 
     "Action":[ 
      "cloudformation:DeleteStack", 
      "cloudformation:UpdateStack" 
     ], 
     "Resource":"arn:aws:cloudformation:us-east-1:123456789012:stack/MyProductionStack/*" 
    }] 
} 

политики может также require use of a Multi-factor Authentication (MFA) code перед выполнением таких как удаление стека.

защиты ресурсов

Ресурсы, созданные CloudFormation все еще могут быть удалены/изменены любым пользователем с соответствующим разрешением. Поэтому важно защитить важные ресурсы от воздействия неавторизованных пользователей. AWS рекомендует предоставить наименьшие привилегии, чтобы пользователи могли контролировать только те ресурсы, которые им нужны, и не более того.

CloudFormation Удаление политики

Политика удаления определяет ресурсы, которые должны не быть удалены, когда стек будет удален.

От CloudFormation documentation:

С DeletionPolicy атрибута вы можете сохранить или (в некоторых случаях) резервное копирование ресурс, когда его стек будет удален. Вы указываете атрибут DeletionPolicy для каждого ресурса, который вы хотите контролировать. Если ресурс не имеет атрибута DeletionPolicy, AWS CloudFormation удаляет ресурс по умолчанию.

Чтобы сохранить ресурс при удалении его стека, укажите Retain для этого ресурса. Вы можете использовать сохранение для любого ресурса. Например, вы можете сохранить ведро Amazon S3 или экземпляр Amazon EC2, чтобы вы могли продолжать использовать или изменять эти ресурсы после удаления своих стеков.

Это обычно используется для хранения ресурсов после умышленного удаления стека. Например, сохраняя ведро Amazon S3 или базу данных Amazon RDS. Однако он также может использоваться для сохранения ресурса, даже если стек случайно удаляется.

Смежные вопросы