Рубрики
Uncategorized

Развертывание открытых ключей в контейнерах Docker

Одна из труднодоступных проблем для решения при использовании Docker в производстве, развертывает секреты. githut_pki делает развертывание ключа SSH легко. Теги с DevOps, Showdev, Opensource, Docker.

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

Поскольку все наши пользователи имеют учетные записи на Github с их SSH ключом, имело смысл использовать GitHub в качестве централизованного PKI для SSH-ключей. Начиная с простого скрипта Ruby, подключающихся к API GitHub, мы вскоре поняли, нам понадобится общий способ развертывания открытых ключей от GitHub, если мы сохраняемся в этом подходе.

Это родило github_pki , универсальный инструмент командной строки с использованием API GitHub для развертывания ключей SSH и X509 из организаций GitHub, команд и отдельных пользователей.

Установка может быть сделана из источника:

FROM debian:jessie

ENV GOPATH=/go
RUN apt-get update && apt-get install -y golang-go git \
  && go get github.com/camptocamp/github_pki \
  && apt-get autoremove -y golang-go git \
  && rm -rf /var/lib/apt/lists/*

Или наследование одного из Официальный докер изображения Отказ

Затем команда github_pki может быть просто называться в скрипте входа в развертывание клавиш:

#!/bin/sh

# Deploy users keys as X509 public keys to SSL_DIR
SSL_DIR=/etc/puppetlabs/mcollective/clients /go/bin/github_pki

# Deploy user keys as an authorized_keys file
AUTHORIZED_KEYS=/root/.ssh/authorized_keys /go/bin/github_pki

Различные Переменные среды Может использоваться для настройки того, какие ключи должны быть развернуты:

$ docker run -e AUTHORIZED_KEYS=/root/.ssh/authorized_keys \
             -e SSL_DIR=/etc/test/ssl \
             -e GITHUB_ORG="myorg" \
             -e GITHUB_TEAM="mypals" \
             -e GITHUB_USERS="otheruser" \
             -e GITHUB_TOKEN=398d6d326a546d40f3f1ef93345d1fc5ee0f0j38 \
             mydockerimage
run-parts: executing /docker-entrypoint.d/25-populate-ssl-clients.sh
time="2016-03-22T09:45:52Z" level=info msg="Adding users for team mypals" 
time="2016-03-22T09:45:52Z" level=info msg="Adding user bob" 
time="2016-03-22T09:45:52Z" level=info msg="Adding user alice" 
time="2016-03-22T09:45:52Z" level=info msg="Adding individual user otheruser" 
time="2016-03-22T09:45:53Z" level=info msg="Getting keys for user bob" 
time="2016-03-22T09:45:53Z" level=info msg="Getting keys for user alice" 
time="2016-03-22T09:45:53Z" level=info msg="Getting keys for user otheruser"
time="2016-03-22T09:45:59Z" level=info msg="Generating /root/.ssh/authorized_keys" 
time="2016-03-22T09:45:59Z" level=info msg="Dumping X509 keys to /etc/puppetlabs/mcollective/clients" 
time="2016-03-22T09:45:59Z" level=info msg="Converting key bob/1325852 to X509" 
time="2016-03-22T09:45:59Z" level=info msg="Converting key alice/123756 to X509" 
time="2016-03-22T09:45:59Z" level=info msg="Converting key alice/7845928 to X509" 
time="2016-03-22T09:45:59Z" level=info msg="Converting key otheruser/8540586 to X509"

Этот блог пост был первоначально опубликован на camptocamp.com

Оригинал: «https://dev.to/camptocamp-ops/deploying-public-keys-in-docker-containers-41cd»