微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cloudformation:参考在其他地区创建的 ACM 证书

如何解决Cloudformation:参考在其他地区创建的 ACM 证书

由于 Cloudfront 的 https 证书只能在 us-east-1 中创建,而我的整个堆栈都是在 eu-west-1 中创建的,因此我想在 us-east-1 中创建一个包含 ACM 证书的堆栈,然后在 eu-west-1 的堆栈中使用该证书。

唯一的问题是,我如何在不对其进行硬编码的情况下引用该证书,因为我无法ImportValue 在其他地区输出

例如

  distribution:
    Type: AWS::CloudFront::distribution
    Properties:
      distributionConfig:
        Origins:
          - DomainName: !GetAtt S3Bucket.RegionalDomainName
            Id: ****
            CustomOriginConfig:
              HTTPPort: '80'
              HTTPSPort: '443'
              OriginProtocolPolicy: https-only
        DefaultRootObject: 'index.html'
        Enabled: true
        Aliases:
          - 'bla.bla.com'
        DefaultCacheBehavior:
          TargetoriginId: '*-origin'
          AllowedMethods:
          - GET
          - HEAD
          ViewerProtocolPolicy: redirect-to-https
          CachePolicyId: '658327ea-f89d-4fab-a63d-7e88639e58f6'
        ViewerCertificate:
          AcmCertificateArn: !ImportValue ****
          SslSupportMethod: sni-only

当我在 AcmCertificateArn 中部署它时,我需要在 eu-west-1 行上放什么?

解决方法

正如您所指出的,您不能在不同区域的堆栈之间进行跨区域导出/导入引用。在这种情况下,您通常会将证书 ARN 作为输入参数提供给 eu-west-1 中的堆栈。

其他选项将涉及使用 SSM parameters 动态引用来传递证书的 ARN 值。对于全自动解决方案,您需要在 eu-west-1 中以 lambda 函数的形式开发 custom resource。该函数将在 us-east-1 中的堆栈中查询其输出中的 arn,并将 arn 返回到 eu-west-1 中的堆栈。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。