В этой статье вы развернете Azure Key Vault и экземпляр Azure Container Registry с помощью Terraform.

Terraform — это инструмент «инфраструктура как код», который позволяет вам определять ресурсы вашей инфраструктуры с помощью читаемых файлов конфигурации. Вы будете использовать его для развертывания необходимой инфраструктуры Azure, от которой зависит ваш рабочий процесс GitHub для подписи образов контейнеров.

К концу этой статьи вы развернете все ресурсы Azure, необходимые для цифровой подписи образов контейнеров с помощью нотариуса.


Создание субъекта-службы

И вашему рабочему процессу GitHub, и Terraform требуется субъект-служба для аутентификации в Azure.

Создайте новый субъект-службу, выполнив следующую команду. az команда:

az ad sp create-for-rbac --name notary-gh-sp --role contributor \
--scopes /subscriptions/<subscriptionId> --sdk-auth
Войти в полноэкранный режим

Выйти из полноэкранного режима

Заменять subscriptionId с вашим идентификатором подписки Azure.

КОНЧИК Сохраните объект JSON в безопасном месте. Вы будете использовать его для создания учетных данных для аутентификации в Azure с помощью действия Azure Login GitHub.


Экспорт переменных среды Terraform

Один из нескольких способов передать учетные данные в Terraform — через переменные среды. Без этих переменных Terraform не сможет пройти аутентификацию в Azure.

Используйте следующее export команды, чтобы задать необходимые переменные среды для поставщика Azure Terraform.

export ARM_CLIENT_ID="00000000-0000-0000-0000-000000000000"
export ARM_CLIENT_SECRET="00000000-0000-0000-0000-000000000000"
export ARM_SUBSCRIPTION_ID="00000000-0000-0000-0000-000000000000"
export ARM_TENANT_ID="00000000-0000-0000-0000-000000000000"
Войти в полноэкранный режим

Выйти из полноэкранного режима

Заменить 00000000 со значениями, предоставленными в JSON из az ad sp create-for-rbac команда.


Примените конфигурацию Terraform

Создав субъект-службу и установив переменную среды, вы готовы применить конфигурацию Terraform.

  1. Изменить каталоги на terraform папка.

    cd terraform
    
  2. Инициализировать Терраформ

    terraform init
    
  3. Примените конфигурацию Terraform

    terraform apply
    

    При появлении запроса введите yes в терминал и нажмите войти.

Команда применения Terraform


Создайте токен реестра контейнеров Azure.

Ваша последняя задача в этом руководстве — создать токен, который Notation, инструмент командной строки для нотариуса, будет использовать для аутентификации в реестре при подписании образов.

Выполните следующую команду, чтобы создать токен ACR:

az acr token create \
--name exampleToken \
--registry <registryName> \
--scope-map _repositories_admin \
--query 'credentials.passwords[0].value' \
--only-show-errors \
--output tsv
Войти в полноэкранный режим

Выйти из полноэкранного режима

КОНЧИК Сохраните значение пароля в безопасном месте. Вам нужно будет сохранить его как секрет GitHub позже в демонстрации.