AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[amazon-cloudformation](server)

Martin Hope
Goural
Asked: 2021-12-18 00:27:37 +0800 CST

CloudFormation - 更新 ec2 实例的 SecurityGroupIds 它重新创建实例而不是修改相同的实例

  • 1

我用 cloudformation 创建了 ec2 实例。当我尝试在同一个模板中更新实例的安全组时,cloudformation 会重新创建实例而不是修改相同的实例(就像在 terraform 中一样)。如何在不重新创建实例的情况下更新 SecurityGroup?

例如下面的模板 -

Resources:
  Ec2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      InstanceType: t2.micro
      ImageId: ami-0ed9277fb7eb570c9
      SecurityGroupIds:
        - sg-09d68774a93ec40df

现在,如果我尝试添加另一个 SecurityGroupIds 它会重新创建 ec2 -

Resources:
  Ec2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      InstanceType: t2.micro
      ImageId: ami-0ed9277fb7eb570c9
      SecurityGroupIds:
        - sg-09d68774a93ec40df
        - sg-05555951931eeaca7
amazon-cloudformation
  • 1 个回答
  • 186 Views
Martin Hope
Yoav Feuerstein
Asked: 2021-05-07 07:09:47 +0800 CST

带有 ConfigRule 的 AWS CloudFormation 模板

  • 0

我是 AWS 的新手,但已经尝试到处寻找这个,但找不到正确的答案。

我的目标是创建一个形成新堆栈的 CloudFormation 模板,而不假设 AWS Config 已启用。这个模板应该定义更多的项目,其中之一应该是 ConfigRule。

为了实现这一点,我发现这个模板看起来不错,然后尝试将其中一个示例中的 ConfigRule 添加到同一个模板文件中。但是当我尝试从这个组合模板创建一个新堆栈时,我收到了这个错误:

您必须先创建配置记录器,然后才能创建或更新配置规则。(服务:AmazonConfig;状态代码:400;错误代码:NoAvailableConfigurationRecorderException

由于模板文件确实定义了一个配置记录器,我不确定它有什么问题。这基本上是链接模板的副本,我在我添加的位置周围标记了注释,只是为了添加一些应该作为模板的一部分创建的示例配置规则:


AWSTemplateFormatVersion: 2010-09-09
Description: 'The AWS CloudFormation template creates KMS encryption keys for Config and S3, an encrypted S3 bucket, and enables Config for the account'

# added for configRule - start (1)
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: Configuration
        Parameters:
          - Frequency
    ParameterLabels:
      Frequency:
        default: Frequency

Parameters:
  Frequency:
    Type: String
    Default: 24hours
    Description: Maximum rule execution frequency.
    AllowedValues:
      - 1hour
      - 3hours
      - 6hours
      - 12hours
      - 24hours

Mappings:
  Settings:
    FrequencyMap:
      1hour   : One_Hour
      3hours  : Three_Hours
      6hours  : Six_Hours
      12hours : Twelve_Hours
      24hours : TwentyFour_Hours
# added for configRule - end (#1)

Resources:
# added for configRule - start (2)
  CheckForRootMFA:
    Type: AWS::Config::ConfigRule
    Properties:
      Description: Checks whether the root user of your AWS account requires multi-factor authentication for console sign-in.
      MaximumExecutionFrequency: !FindInMap
          - Settings
          - FrequencyMap
          - !Ref Frequency
      Source:
        Owner: AWS
        SourceIdentifier: ROOT_ACCOUNT_MFA_ENABLED
# added for configRule - end (2)
  # KMS S3 Config Service encryption key
  s3configKey:
    Type: AWS::KMS::Key
    Properties:
      KeyPolicy:
        Version: 2012-10-17
        Id: key-s3config
        Statement:
          - Sid: Enable IAM User Permissions
            Effect: Allow
            Principal:
              AWS: !Join
                - ''
                - - 'arn:aws:iam::'
                  - !Ref 'AWS::AccountId'
                  - ':root'
            Action: 'kms:*'
            Resource: '*'
  s3configKeyAlias:
    Type: AWS::KMS::Alias
    Properties:
      AliasName: alias/s3config
      TargetKeyId:
        Ref: s3configKey

  # Build AWS Config Service S3 Bucket for Storage
  AWSConfigS3Bucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
        - ServerSideEncryptionByDefault:
            KMSMasterKeyID: !Sub 'arn:aws:kms:${AWS::Region}:${AWS::AccountId}:${s3configKeyAlias}'
            SSEAlgorithm: 'aws:kms'

  # Build AWS Config Recorder
  ConfigRecorder:
    Type: 'AWS::Config::ConfigurationRecorder'
    Properties:
      Name: 'ConfigRecoder'
      RecordingGroup:
        AllSupported: true
        IncludeGlobalResourceTypes: true
      RoleARN: !GetAtt
        - AWSIAM
        - Arn

  # Build IAM Role for Config
  AWSIAM:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - config.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/service-role/AWSConfigRole'
      Path: /
      Policies:
        - PolicyName: S3-access
          PolicyDocument:
            Statement:
              - Effect: Allow
                Action:
                  - 's3:PutObject'
                Resource: !Join
                  - ''
                  - - 'arn:aws:s3:::'
                    - !Ref AWSConfigS3Bucket
                    - /AWSLogs/
                    - !Ref 'AWS::AccountId'
                    - /*
                Condition:
                  StringLike:
                    's3:x-amz-acl': bucket-owner-full-control
              - Effect: Allow
                Action:
                  - 's3:GetBucketAcl'
                Resource: !Join
                  - ''
                  - - 'arn:aws:s3:::'
                    - !Ref AWSConfigS3Bucket

  # Create Config Delivery Channel
  DeliveryChannel:
    Type: 'AWS::Config::DeliveryChannel'
    Properties:
      S3BucketName: !Ref AWSConfigS3Bucket

Outputs:
    S3KMSKeyAlias:
        Description: 'S3 KMS Key Alias'
        Value:
            Ref: 's3configKeyAlias'
    AWSIAM:
        Description: 'IAM Role for Config'
        Value:
            Ref: 'AWSIAM'     
    AWSConfigS3Bucket:
        Description: 'Encrypted S3 Bucket for Config Logs'
        Value:
            Ref: 'AWSConfigS3Bucket'
    ConfigRecorder:
        Description: 'Config Recorder'
        Value:
            Ref: 'ConfigRecorder'
    DeliveryChannel:
        Description: 'Config Delivery Channel'
        Value:
            Ref: 'DeliveryChannel'
configuration amazon-web-services amazon-cloudformation
  • 1 个回答
  • 714 Views
Martin Hope
Adam Luchjenbroers
Asked: 2021-02-17 03:43:16 +0800 CST

在 CentOS 8 上安装 cfn-bootstrap 实用程序的最佳方法

  • 0

我正在 AWS 中处理基于 CentOS 8 的实例/启动配置,并希望使用 cfn-init 来管理一些设置/配置步骤。

但是,我发现提供的 RPM 没有部署,因为 Python2 和 Python3 的打包方式不同,以至于 AWS 提供的 RPM 找不到它的依赖项。

我用来安装的命令是:yum install -y https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.amzn1.noarch.rpm

这会导致以下错误:

Error: 
 Problem: conflicting requests
  - nothing provides python >= 2.6 needed by aws-cfn-bootstrap-1.4-34.noarch
  - nothing provides python-setuptools needed by aws-cfn-bootstrap-1.4-34.noarch
  - nothing provides python-daemon needed by aws-cfn-bootstrap-1.4-34.noarch
  - nothing provides pystache needed by aws-cfn-bootstrap-1.4-34.noarch

我怀疑这是因为 CentOS <= 7 中的 python 现在是 CentOS8 中的 python2。

在这种情况下安装这些工具的最佳方式是什么?

centos8 amazon-cloudformation
  • 1 个回答
  • 1077 Views
Martin Hope
Marcello Romani
Asked: 2021-01-11 10:54:31 +0800 CST

CloudFormation:如何获取给定区域中的密钥对列表

  • 3

我有一个非常简单的 CF 模板,可以创建一个 EC2 实例。密钥对被指定为参数。我希望自动填充可能的密钥对列表。

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: eu-west-2a
      ImageId: ami-0e80a462ede03e653
      InstanceType: t3.nano
      KeyName: !Ref SSHKey

Parameters:
  SSHKey:
    Type: String
    Description: name of the key pair to ssh into the instance
    AllowedValues:
      # populate automatically

如何使用 CloudFormation 检索正在部署模板的区域中的密钥对列表?

amazon-cloudformation
  • 1 个回答
  • 689 Views
Martin Hope
Alex R
Asked: 2020-10-26 15:09:34 +0800 CST

如何以 CloudFormation 格式转储 AWS 资源定义?

  • 1

我已经阅读了 AWS 文档和这篇总结性博客文章。

TL;DR是 CloudFormation “导入”要求您使用 CloudFormation 模板语法仔细定义要导入的资源,直至最后一个细节。例如,不可能使用控制台试验不同的解决方案,然后在完成后将最终工作产品导入 CloudFormation 模板。

我觉得我一定在这里遗漏了一些东西。当然,必须有一种方法可以将现有资源转储到 JSON 或 YAML 中,然后放入模板中以完成导入。此步骤记录在哪里?

我翻遍CLI了boto3文档,一无所获。

amazon-web-services amazon-cloudformation
  • 1 个回答
  • 310 Views
Martin Hope
wronglebowski
Asked: 2020-06-10 12:54:35 +0800 CST

CWAgent 磁盘空间警报

  • 2

我正在尝试使用来自 Cloudwatch 代理的指标为可用磁盘空间实现警报(在 Cloudformation 中),但我遇到了设备改组 DeviceID 的问题。

我之前在使用 fstab 时遇到过这种情况,EC2 实例以看似随机的顺序附加 EBS 卷。如果我有两个 EBS 卷,一个用于操作系统,一个用于数据,它们可以在 nvme0n1/nvme1n1 之间随机交换。我能够使用分区 UUID 解决这个问题。

但是,在创建警报时,我认为没有办法解决这个问题。必须使用指定 DeviceID(nvme0n1) 和挂载点 (/var/data) 的指标来创建警报。这些可以在任何给定的引导时交换。请参阅https://imgur.com/a/XJ62zN8您可以看到当服务器重新启动时设备发生变化时,有四个数据点有效地表示两个信息点。

有什么方法可以在没有设备的情况下使 Cloudwatch 代理报告或编写警报以应用于任何设备指标?

monitoring amazon-ec2 amazon-web-services amazon-ebs amazon-cloudformation
  • 1 个回答
  • 435 Views
Martin Hope
Chris
Asked: 2020-06-01 11:31:45 +0800 CST

最初部署 CloudFormation 堆栈进行测试的正确方法是什么?

  • 1

我正在编写我的第一个 CF 堆栈,当然,我在第一次尝试时遇到了失败的部署,因为我还不完全了解语法和可用参数。我正在通过 CLI 验证我的 json 和模板本身,但它仍然可能在部署时遇到问题并导致回滚或失败。现在,当它是一个全新的堆栈而不是更新时,部署就会失败并且我无法更新它,我必须完全销毁堆栈并重新部署它全新的。

我想知道如何解决这个问题。即使删除的堆栈不在控制台中,CLI 仍会列出之前创建和销毁的所有堆栈,但它并不干净。在修复导致堆栈失败的问题后,我当然无法更新堆栈,因为它处于失败状态,我必须重新部署所有内容,就好像它是一个全新的堆栈一样。

对此有什么想法吗?你是如何开始创建你的第一个堆栈的?

best-practices amazon-web-services amazon-cloudformation
  • 1 个回答
  • 322 Views
Martin Hope
jrd1989
Asked: 2020-05-28 11:46:05 +0800 CST

使用 CloudFormation 创建 EC2 实例和卷

  • 1

我正在尝试使用CloudFormation部署两个 Windows Server 2019 EC2 实例,并将一个新卷附加到每个实例(两个实例,总共两个卷)。部署时出现以下错误:

属性标签的值必须是列表类型

根据我的研究,听起来我引用我试图创建的卷的方式可能是问题,但不确定。

这是我的一些模板供参考:

Resources:
  rpt04:
    Type: 'AWS::EC2::Instance'
    Properties:
      AvailabilityZone: us-west-1
      InstanceType: t2.large
      ImageId: ami-0cc5ea3dde5301489
      Tags:
        - Key: "Name"
          Value: "RPT-04 (W2K16)"
      KeyName: Key_2020
      SecurityGroupIds: 
        - sg-f2bcJmn9
      SubnetId: subnet-19234d70 
      BlockDeviceMappings:
        - DeviceName: /dev/sda1
          Ebs:
            VolumeSize: 100
            DeleteOnTermination: true
      Volumes:
        -
         Device: xvdb
         VolumeId: !Ref rpt04appvolume
    Metadata:
      'AWS::CloudFormation::Designer':
        id: 357656a6-846b-4674-b06a-22901916ff91

   rpt04appvolume:
    Type: 'AWS::EC2::Volume'
    Properties:
      AvailabilityZone: us-west-1
      Size: 100
      VolumeType: gp2
      Tags:
         Key: Name
         Value: RPT-04-APP
    Metadata:
      'AWS::CloudFormation::Designer':
        id: 3340c328-2324-42e5-bd11-b3c1d1f41a09

我很感激这方面的任何帮助/帮助。我是 CloudFormation 的新手并坚持使用这个。

amazon-ec2 amazon-web-services amazon-cloudformation
  • 2 个回答
  • 1070 Views
Martin Hope
GNUSupporter 8964民主女神 地下教會
Asked: 2019-06-02 16:19:10 +0800 CST

适用于 Jupyter 的 AWS CloudFormation 模板

  • 2

在阅读在 AWS 上创建和使用 Jupyter 实例中设置 CloudFormation 模板的说明时,我发现以下修改很困难。

"AWSRegionArch2AMI" : {
  "ap-southeast-2" : {"HVM64" : "ami-58facb3b", "HVMG2" : "ami-6cfdcc0f"}
}

我设置了一个在 Amazon Linux 2 上运行的 AMI,实例类型为“c5d.2xlarge”。应该选择哪个HVM( HVM64, HVMG2, )?HVMP2

我已阅读如何在 AWS Cloudformation 模板中指定我的 t1.micro 实例是 64 位架构,并且我尝试在链接的 PDF 中搜索示例 CloudFormation 模板,但c5d.2xlarge在AWSInstanceType2Arch. 官方文档只是说它与 AMI 的架构有关,没有进一步解释。

amazon-cloudformation
  • 1 个回答
  • 207 Views
Martin Hope
Lidor Ettinger
Asked: 2018-07-27 03:11:45 +0800 CST

无法修改云形成中现有的自动缩放组

  • 4

我在 Cloud Formation 中创建了一个新模板,我愿意在我的 Cloud Formation 模板中将新目标组添加到手动创建的现有 Auto Scaling 组中。

我有什么可能实现它?

amazon-cloudformation
  • 1 个回答
  • 137 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve