Разрешение динамической ссылки в шаблоне облачных данных пользовательских данных EC2 - PullRequest
0 голосов
/ 14 мая 2019

У меня есть шаблон облачной информации, который создает шаблон запуска EC2.

В разделе UserData шаблона мне нужно выбрать параметр безопасности SSM и представить его в качестве переменной среды для инициализации моей виртуальной машины.Я пытаюсь использовать !Sub, но мои результаты не соответствуют ожиданиям.Вот мой пример кода:

  TestJenkinsMasterLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
        UserData:
          Fn::Base64: !Sub
            - | 
              #!/bin/bash
              echo ${azure_client_id}
            - azure_client_id: '{{resolve:ssm-secure:/Jenkins/Production/AzureAdClientId:1}}'

Выходные данные в файле /var/log/cloud-init-output.log представляют собой сам шаблон: {{resolve:ssm-secure:/Jenkins/Production/AzureAdClientId:1}}.

Как правильно разрешить параметр SSM?

1 Ответ

1 голос
/ 14 мая 2019

Использование интерфейса командной строки AWS:

azure_client_id=$(aws --region=us-east-1 ssm get-parameter --name "azure_client_id" --with-decryption --output text --query Parameter.Value

Убедитесь, что вы: определили пользовательские данные как скрипт оболочки bash, установите aws cli и убедитесь, что роль экземпляра имеет правильные политики.

Пример скрипта пользовательских данных:

#!/bin/bash
apt-get install -y awscli
export AWS_ACCESS_KEY_ID=your_access_key_id_here
export AWS_SECRET_ACCESS_KEY=your_secret_access_key_here
azure_client_id=$(aws --region=us-east-1 ssm get-parameter --name "azure_client_id" --with-decryption --output text --query Parameter.Value

Используйте этот скрипт пользовательских данных в шаблоне формирования облаков.

См. https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html

...