amazon-web-services - 防止 AWS CloudFormation 使用 IAM 删除 DynamoDB

标签 amazon-web-services aws-cloudformation amazon-iam

我正在尝试创建一个 AWS 角色来阻止 CloudFormation 删除表。例如,我创建的表如下:

UsersDynamoDBTable:
    Type: AWS::DynamoDB::Table
    Description: Users DynamoDB Table
    Properties:
      AttributeDefinitions:
        - AttributeName: hashKey
          AttributeType: S
        - AttributeName: rangeKey
          AttributeType: S
      KeySchema:
        - AttributeName: hashKey
          KeyType: HASH
        - AttributeName: rangeKey
          KeyType: RANGE
      BillingMode: PAY_PER_REQUEST
      GlobalSecondaryIndexes:
        - IndexName: index-rangeKey
          KeySchema:
            - AttributeName: rangeKey
              KeyType: HASH
            - AttributeName: hashKey
              KeyType: RANGE
          Projection:
            ProjectionType: ALL

现在假设开发人员意外删除了此行并更新了堆栈。这样,表及其所有数据都将被删除。因此,我想创建一个角色来阻止 CloudFormation 删除 DynamoDB 表。我的第一次尝试是创建下面的角色,但没有成功。

PreventCloudFormationDeleteTableIAMRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - cloudformation.amazonaws.com
            Action:
              - sts:AssumeRole
      Policies:
        - PolicyName: PreventTableDeletePolicy
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Deny
                Action:
                  - dynamodb:DeleteTable
                Resource:
                  - !Join
                    - '/'
                    - - !Join [':', ['arn:aws:dynamodb', !Sub '${AWS::Region}', '*', 'table']]
                      - !Join ['', [!Sub '${StackName}', '*']]

我是否缺少一些角色配置?

谢谢。

最佳答案

您可以使用 RETAINDeletionPolicy 来防止在移除堆栈或从模板中移除表时删除表。此外,新的 UpdateReplacePolicy 将阻止 CloudFormation 在由于主键更改而需要删除表时删除表。

关于amazon-web-services - 防止 AWS CloudFormation 使用 IAM 删除 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54462191/

相关文章:

linux - 我如何在 AWS 的 amazon linux 上使用 Atom 编辑器?

python - 使用 boto3 挂载 EBS 卷

java.io.IOException : The document has no pages. 在本地工作正常,但在 aws 中部署后无法工作

amazon-web-services - Cloudformation - 使用以前使用的名称重新创建堆栈

powershell - 使用 AssumeRole、现有策略和唯一 URL 颁发临时凭证以登录 AWS 管理控制台

python - 将 pickle 文件写入 AWS 中的 s3 存储桶

amazon-web-services - 无法仅使用 cloudformation 创建 IAM 策略

amazon-web-services - AWS CloudFormation,堆栈更新不会修改我的 EC2 配置

amazon-web-services - AWS 拒绝访问 VPC

amazon-web-services - 通过 cloudformation 自动设置 AWS SSO 配置权限