标签: amazon-cloudformation

如何在 AWS CloudFormation 模板中指定 VPC 和子网

我正在尝试启动CloudFormation入门中所述的示例 CloudFormation 模板

我删除了默认 VPC,添加了新 VPC (10.0.0.0/16),并在其中创建了一个新子网 (10.0.0.0/24)。根据 AWS 文档,我无法将自己的 VPC 设置为默认值,现在无法启动我的 CloudFormation 模板。

我看到这个错误:

在此处输入图片说明

根据https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-cloudformer-default-vpc/,我可以通过描述我的新 VPC 来解决问题,但我不知道为什么这是正确的。

amazon-web-services amazon-cloudformation amazon-vpc

8
推荐指数
1
解决办法
2万
查看次数

如何检索 AWS SNS Arn 值

我计划使用嵌套堆栈来创建(SNS、ELB 和应用程序)堆栈。所以现在一旦创建了 sns,我必须将 arn 值传递给 ELB 和应用程序 json(云形成模板),那么获取 SNS arn 的资源名称是什么一旦它被创建

前任:

"Fn::GetAtt" : [ "MyLB" , "DNSName" ]
Run Code Online (Sandbox Code Playgroud)

同样,我正在寻找 SNS Arn ..

amazon-web-services amazon-cloudformation amazon-sns

8
推荐指数
1
解决办法
7614
查看次数

引用 CF 模板中的现有资源

我们有多个 CloudFormation 脚本来创建我们的堆栈。

现在,我们要编写(自动化)新脚本,这些脚本仅用于更新1 个特定资源(业务需求)。

我遇到的问题是如何在我的更新脚本中引用现有资源?我知道有REF函数,但我相信这只是用于在同一脚本中引用资源。AWS 是否提供了一些东西来引用现有资源?

我已经读到我们可以使用,parameters但还有其他选择吗?

resources template amazon-cloudformation

8
推荐指数
2
解决办法
1万
查看次数

如何将 ssh 密钥对与 Amazon CloudFormation 中的堆栈创建的实例相关联?

之前我已经基于镜像创建了一个 EC2 实例。在创建过程中,亚马逊向导创建了一个密钥对,然后将其提供给我,以便我可以连接。

现在我尝试使用 CloudFormation,以便我的新服务器安装了一些基本软件(LAMP 堆栈)。但是我最终得到的 EC2 实例没有我可以找到的 ssh 密钥对。

在 CloudFormation 上创建堆栈时,是否可以关联密钥对?

我已经读到有一些方法可以通过停止实例、创建克隆以及其他一些步骤来将密钥添加到实例的卷中。但是我在这方面的管理技能并不那么强,所以我希望(对我来说)更简单。

希望这是有道理的 - 非常感谢任何帮助!

ssh amazon-ec2 amazon-cloudformation

7
推荐指数
2
解决办法
1万
查看次数

AWS Cloudformation - 无法将多个子网关联添加到公共路由表

我们有一个带有 Internet 网关的 VPC。我们有 3 个子网(每个 AZ 一个),并且希望对所有三个子网使用一个路由表。此 RT 包含将 0.0.0.0/0 路由到 igw 的规则,但是当我们尝试将多个子网与此 RT 关联时,堆栈创建在创建路由规则时失败,并给出以下错误消息:

route table rtb-xxxxxxx and network gateway igw-xxxxx belong to different networks.
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为 igw 没有连接到子网,它连接到 VPC 本身。

为了让模板正常工作,我必须做的是只与 RT 有 1 个子网关联,然后再用其他两个更新堆栈。

我已经尝试添加 2 个等待条件,一个与 RT 的创建相关,另一个与路由规则的创建相关,但是它们没有解决问题 - 我仍然在同一个该死的规则上遇到相同的错误:(

任何人都可以阐明我需要做些什么来解决这个问题?

amazon-web-services amazon-cloudformation

7
推荐指数
3
解决办法
8097
查看次数

为 cloudformation 堆栈部署生成权限

我有 CloudFormation 堆栈,它经常由脚本更新(更改启动配置的源 AMI)。我希望它由相同的脚本部署,由非特权用户/实例角色执行。目前所有更新都是由管理员用户完成的,拥有比需要更多的权限。

我最初的方法是尝试和失败,在日志中查看缺少哪些权限并一一添加。需要很多时间,而且远没有成效。

我认为应该有一种方法可以根据 CloudFormation 模板生成权限列表,以及更新堆栈本身的权限。

我的第二个想法是处理成功部署的 CloudTrail 日志以从中提取操作和资源。

可能已经有一种方法可以做到这一点,而我正在重新:投资轮子?

security amazon-web-services amazon-cloudformation amazon-iam

7
推荐指数
1
解决办法
472
查看次数

确定 Cloudformation Stack 的 IAM 要求

我目前正在开发和启动一个相对简单的 cloudformation 堆栈。只是一些简单的 RDS 东西,通过外部 CI+CD 服务触发。

但是,我当前的开发周期效率非常低,这纯粹是因为我不明白我设置的持续集成IAM 组的 IAM 权限需要是什么。

我将尝试运行 Cloudformation 模板的部署,但会在设置某些内容并开始回滚时出现一些错误。回滚将失败,因为它需要不同的权限才能删除它迄今为止设法创建的内容。我添加了我发现的两个新权限,删除堆栈,因为它处于ROLLBACK_FAILED状态,然后重试。

我可以通配所有我需要的服务的所有权限,但是在将一些 AWS 凭证交给外部服务时,这不是最佳实践。

因为这。有没有办法知道我特别需要根据 cloudformation 模板设置哪些 IAM 权限?或者,每个 Cloudformation 资源是否需要一些 IAM 权限列表?我是否在尝试限制尽可能多的权限方面过于迂腐?还是我永远注定要进行 IAM 权限调整的试验?

amazon-web-services amazon-cloudformation amazon-iam

6
推荐指数
1
解决办法
1639
查看次数

如何使用 CloudFormation 配置 AWS ElasticSearch 访问策略?

关于 ElasticSearch 访问控制AWS 文档讨论了如何通过创建 ES 域资源策略并将资源设置为 ES 域 ARN 后跟/*. 对于例如

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:user/test-user"
        ]
      },
      "Action": [
        "es:*"
      ],
      "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,test-user被授予对 ES 域子资源执行操作的权限,但不授予对 ES 域配置本身执行操作的权限。

当供应的使用CloudFormation AWS ES域,可以设置与所述资源策略AccessPolicies财产。AWS::Elasticsearch::DomainAccessPolicy不幸的是,没有 CloudFormation 资源,似乎在 ES 域上设置资源策略的唯一方法是使用此属性。

如果现在有办法知道要在现场使用的 ES 域 ARN,那么如何利用访问控制文档中推荐的策略类型Resource,因为在访问策略所在的位置尚未创建 ES 域定义?

我已经尝试DomainArn在访问策略的资源字段中引用ES 域的属性,但可以理解的是,这不起作用,因为它创建了循环依赖。

到目前为止,我想到的唯一解决方案是等到 AWS 更新 CloudFormation 以包含 …

amazon-web-services amazon-cloudformation amazon-iam

6
推荐指数
1
解决办法
2046
查看次数

AWS Fargate 任务未通过 ELB 运行状况检查

我该如何进一步排除故障?我正在尝试运行一个简单的 nginx 容器,但负载平衡器抱怨运行状况检查失败并且任务没有响应其 ip 号,可能是因为负载平衡器出错。

我在 cloudformation 中将任务的优先级设置为 2。如果我尝试将优先级设置为 1,则 CF 堆栈将无法部署。能跟这有关系吗?

# Create a rule on the load balancer for routing traffic to the target group
  LoadBalancerRule:
    Type: AWS::ElasticLoadBalancingV2::ListenerRule
    Properties:
      Actions:
        - TargetGroupArn: !Ref 'TargetGroup'
          Type: 'forward'
      Conditions:
        - Field: path-pattern
          Values: [!Ref 'Path']
      ListenerArn: 
        Fn::ImportValue: !Ref LoadBalancerListener
      Priority: !Ref 'Priority'
Run Code Online (Sandbox Code Playgroud)

资源看起来像:

Resources:

  # The task definition. This is a simple metadata description of what
  # container to run, and what resource requirements it has.
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-elb amazon-cloudformation aws-fargate

6
推荐指数
1
解决办法
7032
查看次数

添加现有安全组 CloudFormation EC2 模板

我无需设置入口和出口规则,而是如何在 CloudFormation 模板中引用现有 EC2 安全组?

   Resources:
      EC2Instance:
        Type: AWS::EC2::Instance
        Properties:
          InstanceType:
            Ref: InstanceType
          SecurityGroups:
          - Ref: InstanceSecurityGroup
          KeyName:
            Ref: KeyName
          ImageId:
            Fn::FindInMap:
            - AWSRegionArch2AMI
            - Ref: AWS::Region
            - Fn::FindInMap:
              - AWSInstanceType2Arch
              - Ref: InstanceType
              - Arch
      InstanceSecurityGroup:
        Type: AWS::EC2::SecurityGroup
        Properties:
          GroupDescription: Existing Groups
          SecurityGroupIds:
          - Ref: sg-12345
          - Ref: sg-12312
Run Code Online (Sandbox Code Playgroud)
  SecurityGroupIngress:
  - IpProtocol: tcp
    FromPort: 80
    ToPort: 80
    CidrIp: 0.0.0.0/0
  SecurityGroupEgress:
  - IpProtocol: tcp
    FromPort: 80
    ToPort: 80
    CidrIp: 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services amazon-cloudformation yaml

6
推荐指数
1
解决办法
8631
查看次数