Как создать пользователя и скопировать соответствующий pub файл в authorized_key с помощью AWS CloudFormation? - PullRequest
0 голосов
/ 16 июня 2020

Мне не удается создать пользователя и скопировать соответствующий файл pub с именем authorized_keys в папку .s sh на экземпляре, используя AWS Cloud Formation. Я делаю это, потому что хочу подключиться к этому пользователю с помощью S SH. Когда я проверяю SystemLog созданного экземпляра, не похоже, что пользователь создан или какой-либо файл скопирован как authorized_keys в каталоге .s sh, это мой код:

LinuxEC2Instance:
Type: AWS::EC2::Instance
Metadata:
  AWS::CloudFormation::Init:
    config:
      users:
        ansible:
          groups:
            - "exampleuser"
          uid: 1
          homeDir: "/home/exampleuser"
      files:
        /home/exampleuser/.ssh/authorized_keys:
          content: !Sub |
            '{{ resolve:secretsmanager:
              arn:aws:secretsmanager:availability-zone:account-id:secret:keyname:
                SecretString:
                  keystring }}'
          mode: "000600"
          owner: "exampleuser"
          group: "exampleuser"

Am Мне что-то не хватает, чтобы создать пользователя и скопировать файл?

1 Ответ

1 голос
/ 17 июня 2020

Чтобы использовать AWS::CloudFormation::Init, вы должны явно вызвать из своего UserData, используя cfn-init вспомогательный скрипт.

Пример такого UserData для Amazon Linux 2 выглядит следующим образом:

      UserData: 
        Fn::Base64: !Sub |
                #!/bin/bash -xe

                yum update -y

                yum install -y aws-cfn-bootstrap

                /opt/aws/bin/cfn-init -v \
                  --stack ${AWS::StackName} \
                  --resource LinuxEC2Instance \
                  --region ${AWS::Region}           

Если есть проблемы, то необходимо войти в экземпляр и проверить файлы журнала, такие как /var/logs/cloud-init-output, на предмет сообщений об ошибках.

...