问题描述
我有以下 Cloudformation 模板(.yml 文件),我在其中创建要添加到密钥组的公钥,也是在同一模板中创建的。 (以下公钥仅用于示例目的。)
AWstemplateFormatVersion: "2010-09-09"
Resources:
CloudfrontPublicKey:
Type: AWS::CloudFront::PublicKey
Properties:
PublicKeyConfig:
CallerReference: 'some-caller-reference'
Comment: 'Public key for signed url'
Name: 'cloudfront-public-key'
EncodedKey: '-----BEGIN PUBLIC KEY-----aaaabbbb-----END PUBLIC KEY-----'
CloudFrontKeyGroup:
Type: AWS::CloudFront::KeyGroup
Properties:
KeyGroupConfig:
Comment: 'Key group for signed url'
Items:
- !Ref CloudfrontPublicKey
Name: 'cloudfront-key-group'
但是,我收到与公钥相关的以下错误
Invalid request provided: AWS::CloudFront::PublicKey
原来的公钥是多行的,例如:
-----BEGIN PUBLIC KEY-----
aaaa
bbbb
-----END PUBLIC KEY-----
我尝试通过添加新行字符使其适合单行
-----BEGIN PUBLIC KEY-----\naaaa\nbbbb\n-----END PUBLIC KEY-----
我也试过没有换行符
-----BEGIN PUBLIC KEY-----aaaabbbb-----END PUBLIC KEY-----
两次尝试都没有成功,我仍然遇到同样的错误。
解决方法
通常,您可以在 yaml 中使用多行字符串来处理这种情况。因此,您可以尝试以下版本的模板:
AWSTemplateFormatVersion: "2010-09-09"
Resources:
CloudfrontPublicKey:
Type: AWS::CloudFront::PublicKey
Properties:
PublicKeyConfig:
CallerReference: 'some-caller-reference'
Comment: 'Public key for signed url'
Name: 'cloudfront-public-key'
EncodedKey: |
-----BEGIN PUBLIC KEY-----
aaaa
bbbb
-----END PUBLIC KEY-----
CloudFrontKeyGroup:
Type: AWS::CloudFront::KeyGroup
Properties:
KeyGroupConfig:
Comment: 'Key group for signed url'
Items:
- !Ref CloudfrontPublicKey
Name: 'cloudfront-key-group'