Получение
Примечание
В настоящее время Atomist находится в стадии Ранний доступ. Функции и API могут быть изменены.
Чтобы начать работу с Atomist, вам потребуется:
Подключите Atomist к вашему реестру контейнеров
Связать ваши образы контейнеров с их Git-источником
Прежде чем вы сможете начать настройку, вам нужен Docker ID. Если у вас его ещё нет, вы можете зарегистрироваться здесь.
Подключение реестра контейнеров
В этом разделе описывается, как интегрировать Atomist с вашим реестром контейнеров. Следуйте соответствующим инструкциям в зависимости от типа используемого вами реестра контейнеров. После завершения этой настройки Atomist будет иметь доступ только для чтения к вашему реестру и получать уведомления о перемещенных или удаленных образах.
Примечание
Использование Docker Hub? 🐳
Если вы используете Docker Hub в качестве реестра контейнеров, вы можете пропустить данный шаг и сразу перейти к привязка образов к источнику Git. Atomist легко интегрируется с вашими организациями Docker Hub.
Amazon
При настройке интеграции Amazon Elastic Container Registry (ECR) с Atomist необходимы следующие ресурсы AWS:
Роль Identity Access Management (IAM) только для чтения, чтобы Atomist мог получает доступ к реестру контейнеров
Amazon EventBridge, для уведомления Atomist о перемещенных и удаленных образах
В этой процедуре используются предварительно определённые шаблоны CloudFormation для создания необходимой роли IAM и Amazon EventBridge. Данный шаблон защищает вас от растерянный депутат атакует, предоставляя уникальный ExternalId
вместе с соответствующим условием в операторе роли IAM.
Перейдите на сайт https://dso.docker.com и войти в систему, используя свои учетные данные Docker ID.
Перейдите на вкладку Integrations и выбрать Configure рядом с интеграцией Elastic Container Registry.
Заполнить все поля, кроме Trusted Role ARN. Идентификатор доверенной роли становится известен только после применения шаблона CloudFormation.
Выбрать основные учетные данные для защиты конечной точки, которую AWS использует для уведомления Atomist. URL и базовые учетные данные аутентификации являются параметрами шаблона CloudFormation.
Теперь создаёт стек CloudFormation. Перед созданием стека AWS попросит вас ввести три параметра.
Url
: конечная точка API скопирована из AtomistUsername
,Password
: основные учетные данные аутентификации для конечной точки. Должны совпадать с теми, что вы ввели в рабочем пространстве Atomist.
Используйте следующие кнопки Launch Stack, чтобы начать просмотр деталей в вашей учетной записи AWS.
Примечание
Перед созданием стека AWS попросит подтвердить, что для создания этого стека требуется возможность. Данный стек создаёт роль, которая предоставит Atomist доступ только для чтения к ресурсам ECR.

Регион |
ecr-integration.template |
восток-1 |
|
восток-2 |
|
запад-1 |
|
запад-2 |
|
евро-запад-1 |
|
евро-запад-2 |
|
евро-запад-3 |
|
eu-central-1 |
|
ca-central-1 |
|
ап-юго-восток-2 |
После создания стека копирует значение для ключа AssumeRoleArn из табы Outputs в AWS.

Вставляет скопированное значение AssumeRoleArn в поле Trusted Role ARN на странице конфигурации Atomist.
Выбрать Сохраняет конфигурацию.
Atomist проверяет соединение с вашим реестром ECR. При успешном подключении рядом с интеграцией отображается зеленая галочка.

GitHub
Чтобы интегрировать Atomist с GitHub Container Registry, подключите свой аккаунт GitHub и входит персональный токен доступа для Atomist, который будет использоваться при извлечении образов контейнеров.
Перейдите на сайт https://dso.docker.com и войти в систему, используя свои учетные данные Docker ID.
Подключите учетную запись GitHub, как указано в инструкции Страница приложения на GitHub.
Открывает вкладку Integrations и выбрать Configure рядом с GitHub Container Registry в списке.
Заполнить поля и выбрать Сохраняет конфигурацию.
Atomist требует Токен личного доступа для подключения образов к частным репозиториям. Маркер должен иметь область read:packages.
Оставьте поле Персональный маркер доступа пустым, если вы хотите индексировать только образы в публичных хранилищах.
Настройка интеграции Atomist с Google Container Registry и Google Artifact Registry включает в себя:
Создаёт учетную запись службы и предоставьте ей роль доступа только для чтения.
Создание подписки PubSub на тему
gcr
для наблюдения за активностью в реестре.
Для выполнения следующей процедуры требуются права администратора в проекте.
Устанавливает следующие переменные окружения. Вы будете использовать их в следующих шагах при настройке ресурсов Google Cloud, используя
gcloud
CLI.export SERVICE_ACCOUNT_ID="atomist-integration" # can be anything you like export PROJECT_ID="YOUR_GCP_PROJECT_ID"
Создаёт учетную запись службы.
gcloud iam service-accounts create ${SERVICE_ACCOUNT_ID} \ --project ${PROJECT_ID} \ --description="Atomist Integration Service Account" \ --display-name="Atomist Integration"
Предоставьте учетной записи службы доступ только для чтения к реестру артефактов.
Имя роли отличается в зависимости от того, используете ли вы реестр артефактов или реестр контейнеров:
roles/artifactregistry.reader
для реестра артефактов Googleroles/object.storageViewer
для Google Container Registry
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--project ${PROJECT_ID} \
--member="serviceAccount:${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/artifactregistry.reader" # change this if you use GCR
Предоставьте доступ учетной записи службы к Atomist.
gcloud iam service-accounts add-iam-policy-binding "${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com" \
--project ${PROJECT_ID} \
--member="serviceAccount:[email protected]" \
--role="roles/iam.serviceAccountTokenCreator"
Перейдите на dso.docker.com и войти в систему, используя свои учетные данные Docker ID.
Перейдите на вкладку Integrations и выбрать Configure рядом с интеграцией Google Artifact Registry.
Заполнить следующие поля:
Идентификатор проекта — это
PROJECT_ID
, использованный в предыдущих шагах.Учетная запись службы: Адрес электронной почты учетной записи службы, созданной на шаге 2.
Выбрать Сохраняет конфигурацию. Atomist протестирует соединение. Зеленые галочки означают успешное подключение.

Затем создаёт новую подписку PubSub на тему gcr
в реестре. Эта подписка будет уведомлять Atomist о новых или удаленных образов в реестре.
Копирует URL-адрес в поле Events Webhook в буфер обмена. Это будет
PUSH_ENDPOINT_URI
для подписки PubSub.Определяет следующие три значения переменных, в дополнение к
PROJECT_ID
иSERVICE_ACCOUNT_ID
, указанным ранее:PUSH_ENDPOINT_URL
: URL webhook скопирован из рабочего пространства Atomist.SERVICE_ACCOUNT_EMAIL
: адрес счета обслуживания; комбинация идентификатора счета обслуживания и идентификатора проекта.SUBSCRIPTION
: имя PubSub (может быть любым).
PUSH_ENDPOINT_URI={COPY_THIS_FROM_ATOMIST} SERVICE_ACCOUNT_EMAIL="${SERVICE_ACCOUNT_ID}@${PROJECT_ID}.iam.gserviceaccount.com" SUBSCRIPTION="atomist-integration-subscription"
Создаёт PubSub для темы
gcr
.gcloud pubsub subscriptions create ${SUBSCRIPTION} \ --topic='gcr' \ --push-auth-token-audience='atomist' \ --push-auth-service-account="${SERVICE_ACCOUNT_EMAIL}" \ --push-endpoint="${PUSH_ENDPOINT_URI}"
Когда первая отправка образа будет успешно обнаружен, зеленая галочка на странице интеграции будет означать, что интеграция работает.
JFrog
Atomist может индексировать образы в хранилище JFrog Artifactory с помощью агента мониторинга.
Агент регулярно сканирует настроенные хранилища и отправляет метаданные вновь обнаруженных образов на плоскость данных Atomist.
В следующем примере https://hal9000.atomist.com
— это частный реестр, видимый только во внутренней сети.
docker run -ti atomist/docker-registry-broker:latest\
index-image remote \
--workspace AQ1K5FIKA \
--api-key team::6016307E4DF885EAE0579AACC71D3507BB38E1855903850CF5D0D91C5C8C6DC0 \
--artifactory-url https://hal9000.docker.com \
--artifactory-repository atomist-docker-local \
--container-registry-host atomist-docker-local.hal9000.docker.com
--username admin \
--password password
Параметр |
Описание |
---|---|
|
Идентификатор вашего рабочего пространства Atomist. |
|
Ключ API Atomist. |
|
Базовый URL-адрес экземпляра Artifactory. Не должен содержать косых черт. |
|
Имя реестра контейнеров, за которым нужно следить. |
|
Имя хоста, связанное с хранилищем Artifactory, содержащим образы, если оно отличается от |
|
Имя пользователя для базовой аутентификации HTTP с Artifactory. |
|
Пароль для базовой аутентификации HTTP с Artifactory. |
Ссылка образов на Git-репозиторий
Знание исходного репозитория образа является необходимым условием для взаимодействия Atomist с Git-репозиторием. Чтобы Atomist мог связать отсканированные образы с репозиторием Git, вы должны аннотировать образ во время сборки.
Метки образов, которые требует Atomist, следующие:
Этикетка |
Значение |
---|---|
|
Ревизия фиксации, для которой создан образ. |
|
Путь к Dockerfile, относительно корня проекта. |
Дополнительные сведения о предопределенных аннотациях OCI см. в разделе документ спецификации на GitHub.
Вы можете добавить данные метки к образам, используя встроенную функцию Git provenance в Buildx, или установить их с помощью аргумента --label
CLI.
Добавление меток с помощью Docker Buildx
Чтобы добавить метки образа с помощью Docker Buildx, устанавливает переменную окружения BUILDX_GIT_LABELS=1
. Buildx создаст метки автоматически при сборке образа.
export BUILDX_GIT_LABELS=1
docker buildx build . -f docker/Dockerfile
Добавление меток с помощью аргумента label CLI
Назначает метки образа, используя аргумент --label
для docker build
.
docker build . -f docker/Dockerfile -t $IMAGE_NAME \
--label "org.opencontainers.image.revision=10ac8f8bdaa343677f2f394f9615e521188d736a" \
--label "com.docker.image.source.entrypoint=docker/Dockerfile"
Образы, созданные в среде CI/CD, могут использовать встроенные переменные окружения при установке метки ревизии Git:
Инструмент для сборки |
Переменная среды |
---|---|
Действия на GitHub |
|
Действия на GitHub, запросы на вытягивание |
|
GitLab CI/CD |
|
Автоматические сборки Docker Hub |
|
Google Cloud Build |
|
AWS CodeBuild |
|
Вручную |
|
Обратитесь к документации вашей платформы CI/CD, чтобы узнать, какие переменные следует использовать.
Куда двигаться дальше&?
Atomist теперь отслеживает список материалов, упаковки и уязвимости для ваших образов! Вы можете просмотреть результаты сканирования образа на странице страница обзора образов.
Команды используют Atomist для защиты последующих рабочих нагрузок от новых уязвимостей. Он также используется для помощи командам в отслеживании и устранении новых уязвимостей, которые влияют на существующие рабочие нагрузки. В следующих разделах описывается дальнейшая интеграция и настройка Atomist. Например, для получения видимости систем контейнерных рабочих нагрузок, таких как Kubernetes.
Подключите Atomist к вашим репозиториям GitHub с помощью установка приложения Atomist для вашей организации GitHub.
Управляйте тем, какие функции Atomist вы используете в настройки.
Узнайте о отслеживание развертывания и о том, как Atomist может помочь следить за развернутыми контейнерами.
Atomist следит за новыми рекомендациями из открытых источников, но вы также можете получает дополнительную информацию через добавлять собственные внутренние рекомендации.