Поиск по сайту:

Как сохранить ключ доступа пользователя AWS и секретный ключ в Jenkins


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Установите подключаемый модуль Cloudbees AWS Credentials.
  4. Храните AWS Access и секретные ключи в Jenkins Credentials.
  5. Установите подключаемый модуль AWS Steps
  6. Создайте конвейер и проверьте созданные учетные данные.
  7. Заключение

Вы можете безопасно хранить свои ключи AWS в учетных данных Jenkins. Если вы хотите взаимодействовать с AWS со своего сервера Jenkins, вы можете безопасно хранить свои пользовательские ключи AWS IAM в Jenkins, а не открыто использовать ключи в конвейере Jenkins. Плагин CloudBees AWS Credentials для Jenkins позволяет хранить учетные данные пользователя AWS IAM в Jenkins Credentials API. Затем мы можем использовать эти учетные данные в нашем конвейере и внедрить их в конвейер с помощью шага \withAWS\. Чтобы использовать шаг \withAWS\, нам нужно установить плагин \AWS Steps Plugin\.

В этой статье мы установим плагин «CloudBees AWS Credentials» и сохраним секретный ключ пользователя AWS IAM и ключ доступа в Jenkins, используя этот плагин. Мы установим «Плагин шагов AWS», чтобы мы могли использовать «awsStep» для внедрения созданных нами учетных данных. Мы выполним операцию S3 Upload Object и Download Object из конвейера, чтобы проверить созданные нами учетные данные.

Предпосылки

  1. Пользователь AWS IAM с ключом доступа и секретным ключом, имеющим доступ для чтения и записи к корзинам S3 (нажмите здесь, чтобы узнать, как создать пользователя IAM в AWS).
  2. Корзина S3 (нажмите здесь, чтобы узнать, как создать корзину S3 на AWS).
  3. Сервер Jenkins (найдите \Как установить Jenkins с помощью файла войны на экземпляре AWS EC2 Ubuntu?\, чтобы научиться создавать сервер Jenkins)

Что мы будем делать?

  1. Установите подключаемый модуль Cloudbees AWS Credentials.
  2. Храните доступ AWS и секретные ключи в Jenkins Credentials.
  3. Установите подключаемый модуль AWS Steps.
  4. Создайте конвейер и проверьте созданные учетные данные.

Установите плагин Cloudbees AWS Credentials

Войдите в Jenkins по адресу http://:8080/jenkins.

Здесь у меня http://52.87.233.129:8080/jenkins/

Вы увидите панель инструментов следующим образом. Нажмите «Управление Дженкинсом» на левой панели.

Здесь в разделе «Конфигурация системы» нажмите «Управление подключаемыми модулями», чтобы установить необходимый подключаемый модуль.

Вы увидите 4 вкладки: «Обновления», «Доступно», «Установлено» и «Дополнительно». Нажмите на вкладку «Доступно», чтобы найти плагин.

Найдите «cloudbees secret manager» в поле поиска на вкладке «Доступно». Установите флажок в полученном результате плагина «Учетные данные Cloudbees AWS» и нажмите «Установить без перезагрузки», чтобы установить плагин без перезапуска Jenkins.

Как только плагин будет установлен, вы получите сообщение «Успех» следующим образом.

Храните AWS Access и секретные ключи в Jenkins Credentials.

Теперь мы готовы хранить учетные данные AWS.

Вернитесь на главную панель инструментов и нажмите «Управление Дженкинсом».

Теперь нажмите «Управление учетными данными» в разделе «Безопасность», чтобы сохранить секретный ключ AWS и ключ доступа.

Нажмите «глобальный» в разделе «Магазины, относящиеся к Jenkins» -> «Добавить учетные данные».

На этой странице вы сможете хранить секреты. Щелкните раскрывающийся список «Тип» и выберите AWS. Укажите имя секрета, описание, идентификатор ключа доступа и секретный ключ доступа. Нажмите OK, чтобы сохранить секреты.

Вы можете видеть, что секрет теперь доступен.

Установите плагин AWS Steps

Следующим шагом будет установка плагина Pipeline AWS Steps. Вернитесь на главную панель инструментов, нажмите «Управление Jenkins» -> «Управление плагинами».

На вкладке «Доступно» найдите «Шаги AWS». Выберите плагин «Конвейер: шаги AWS» и нажмите «Установить без перезагрузки». Это установит плагин без перезапуска Jenkins.

После успешной установки плагина вы увидите сообщение об успешном завершении, как показано ниже.

Создайте конвейер и проверьте созданные нами учетные данные.

Теперь давайте создадим новую работу. В этом задании мы попытаемся использовать созданный нами секрет.

Вернитесь на главную панель инструментов, нажмите «Новинки».

Дайте имя заданию и выберите «Конвейер» в качестве типа задания. Нажмите «ОК», это создаст задание типа «Конвейер».

Щелкните \Создать триггеры\, прокрутите вниз до \Конвейер\, выберите \Сценарий конвейера\ и добавьте следующий код в текстовое поле.

Это конвейер с 1 этапом «проверка учетных данных AWS». На этом этапе мы будем использовать \withAWS\ и укажем здесь наше секретное имя. Внутри него мы создадим образец файла «hello.txt» с сообщением «hello Jenkins». Затем этот файл будет загружен в ведро \devopslee\ S3 в моей учетной записи.

Вам нужно указать имя корзины вместо devopslee.

Чтобы увидеть, загружен ли файл, мы попытаемся загрузить его как «downloadedHello.txt» и распечатать его с помощью команды «cat».

Если все эти шаги были успешными, это означает, что мы смогли успешно использовать наш секретный ключ и ключ доступа, используя созданные нами учетные данные.

pipeline {
    agent any
    stages {
        stage('test AWS credentials') {
            steps {
                withAWS(credentials: 'jenkins-test-user', region: 'us-east-1') {
                    sh 'echo "hello Jenkins">hello.txt'
                    s3Upload acl: 'Private', bucket: 'devopslee', file: 'hello.txt'
                    s3Download bucket: 'devopslee', file: 'downloadedHello.txt', path: 'hello.txt'
                    sh 'cat downloadedHello.txt'
                }
            }
        }
    }
}

Теперь, чтобы протестировать указанный выше конвейер, перейдите к конвейеру и нажмите «Создать сейчас». Это запустит конвейер.

Щелкните История сборки -- > Вывод консоли.

Здесь, в выводе консоли, вы можете видеть, что файл был создан, загружен, загружен и успешно прочитан.

Это означает, что мы смогли успешно аутентифицировать корзину S3, используя ключ доступа и секрет, которые мы сохранили в учетных данных.

Заключение

В этой статье мы установили плагины AWS Steps Plugin в Jenkins. Мы сохранили секреты пользователей AWS IAM и ключи доступа в Jenkins, используя учетные данные Jenkins. Мы также создали конвейер Jenkins, в котором мы проверили созданные учетные данные, загружая и скачивая объект в корзину S3.