Рубрики
Uncategorized

Вы должны вести привилегии отделен

Узнайте, что и как создавать принципы услуг, рекомендуемый шаблон ограничения привилегий только к тому, что требуется при разработке приложений или сценариев .. Теги от Azure, DevOps, Security, обсуждения.

В когда-нибудь есть автоматический процесс, просто внезапно перестал работать, даже если вы не внесли изменения в процесс? Нет ничего подобного чистому адреналину отладки, почему никто не комбинирует, не развернут до производства для критического исправления, и все же все, что сообщает «зеленый». Конечно, были небольшие вещи, которые могут быть исправлены, но эти вещи были просто отвлечениями в этот момент. У каждого было мнение о том, что происходит и просто хотел, чтобы это исправлено сейчас! Пока у меня был самый старшин в рамках операционной команды, некоторые выразили, что это отсутствие моего опыта, вызывающего проблему. Это дало мне подсказку к поиску проблемы. Что-то изменилось. Инженер, который настроил CD-трубопровод, недавно оставил. Немного окуни, и я понял, что он использовал свои полномочия, чтобы получить автоматическое развертывание для работы … Поэтому, когда он ушел, его полномочия были отключены, и она просто не удалась.

У вас нет лазу Возьмите бесплатную подписку Отказ

При написании сценариев для автоматизации или построения сервиса не работайте в своих собственных учетных данных. Это создает одну точку отказа на вас для службы. Это также хорошая практика, чтобы отделить беспокойство между средами. Таким образом, даже если кто-то случайно управляет командой теста против производства, у него не будет катастрофических результатов.

Один рекомендуемый подход — использовать Принципы услуг Отказ Директор службы Azure — это личность для использования с приложениями, услугами и инструментами для доступа к ресурсам Azure. Использование принципов услуг позволяет нам назначать конкретные разрешения, которые ограничены в области применения, чтобы точно, что требуется, поэтому мы можем минимизировать влияние, если он скомпрометирован!

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

После вы Установил Azure CLI или скачал Docker Image. , вы можете начать использовать CLI. Я управляю этими примерами в Докере. Если вы установили напрямую, вы можете игнорировать команду Docker.

$ docker run -it microsoft/azure-cli

Мы получаем AZ команда У кого много разных функций. Мы собираемся сосредоточиться на управлении руководителем услуг для этой статьи. Во-первых, нам нужно войти в систему.

bash-4.4# az login

Если CLI может добраться до веб-браузера, он откроет его и у вас будет войти. В противном случае URL предоставляется из командной строки для посещения вместе с кодом для входа в на страницу входа.

В зависимости от вашего использования Azure у вас может быть разные подписки. Перед запуском команд в CLI полезно проверить ваши подписки, используя Список аккаунтов AZ . Я добавил -o Таблица Чтобы упростить для меня, чтобы прочитать вывод по сравнению с выходом json по умолчанию. Вот модифицированная версия моего вывода, показывающая, что у меня есть 2 учетных записей, один, который является моей учетной записью Pay-You-Go, которую я обновил после истечения моим бесплатным аккаунтом Azure, и одна, которая является моей подпиской, связанной с работой.

bash-4.4# az account list -o table
Name                      CloudName    SubscriptionId                        State    IsDefault
-----------------------------  -----------  ------------------------------------  -------  -----------
my-pay-as-you-go          AzureCloud   00000000-0000-0000-0000-100000000000  Enabled  False
Visual Studio Enterprise  AzureCloud   00000000-0000-0000-0000-100000000001  Enabled  True

Я хочу убедиться, что я использую свое «Предприятие Visual Studio» для этой прогулки Поэтому я собираюсь явно установить свою подписку.

bash-4.4# az account set --subscription="00000000-0000-0000-0000-100000000001"

Далее я хочу управлять руководителем службы. Я могу получить больше информации о команде Azure CLI, прежде чем запустить его, добавив -h флаг.

bash-4.4# az ad sp -h

Group
    az ad sp : Manage Azure Active Directory service principals for automation authentication.

Subgroups:
    credential      : Manage a service principals credentials.
    owner           : Manage service principal owners.

Commands:
    create          : Create a service principal.
    create-for-rbac : Create a service principal and configure its access to Azure resources.
    delete          : Delete a service principal and its role assignments.
    list            : List service principals.
    show            : Get the details of a service principal.

Разбие это в его компоненты, я использую AZ CLI, с Ad Вариант для Active Directory и СП Предпоточный для руководителя обслуживания.

Я собираюсь использовать create-for-rbac Вариант с главным именем SigjeserviceMoPrincipal и Grant Читатель роль принципала. Если роль не указана в времени создания, роль по умолчанию Участник назначен директору. Читатель Роль позволяет основным представить все ресурсы, но не вносить изменения. Участник Роль позволяет вам управлять всем, кроме изменяющегося доступа к ресурсам. Ролевые задания могут получить довольно сложный.

bash-4.4# az ad sp create-for-rbac --name SigjeServiceDemoPrincipal --role Reader
Changing "SigjeServiceDemoPrincipal" to a valid URI of "http://SigjeServiceDemoPrincipal", which is the required format used for service principal names
{
  "appId": "00000000-1111-0000-0000-000000000000",
  "displayName": "SigjeServiceDemoPrincipal",
  "name": "http://SigjeServiceDemoPrincipal",
  "password": "My Sekret Password",
  "tenant": "11111111-0000-0000-0000-000000000000"
}

Не указав что-либо дополнительное, Azure будет генерировать и предоставлять случайный пароль для моего нового руководителя услуг.

Мы можем взять APPID и использовать его для изучения нашего только что созданного руководителя услуг с Список назначения роли AZ --assignee --id "00000000-1111-0000-0000-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Что ответит на объект JSON, который содержит информацию о нашем руководителе обслуживания.

[
  {
    "canDelegate": null,
    "id": "/subscriptions/00000000-0000-0000-0000-100000000001/providers/Microsoft.Authorization/roleAssignments/b681786a",
    "name": "b681786a",
    "principalId": "00000000-1111-0000-0000-000000000000",
    "principalName": "http://SigjeServiceDemoPrincipal",
    "roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-100000000001/providers/Microsoft.Authorization/roleDefinitions/acdd72a7",
    "roleDefinitionName": "Reader",
    "scope": "/subscriptions/00000000-0000-0000-0000-100000000001",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]

Область применения этой роли для всей подписки "Объем": "/Подписки/00000000-0000-0000-0000-100000000001" Отказ Область применения — это уровень, к которому применяется назначение ролей. В этом случае это каждый ресурс в подписке.

На этой диаграмме сверху вниз у нас есть больше всего доступа к ресурсам.

Наконец, я убираю директора службы, потому что я не хочу просто оставить этот сервис принципиально сидеть в моей подписке с az ad sp delete --id "00000000-11111-0000-0000-0000000000000000-000000000000" который ответит на Удаление ролей назначения .

Что дальше

В идеале я бы не создал бы директор услуг для автоматизации для аутентификации с паролем, который я бы тогда встроен. Вместо этого мы можем сделать аутентификацию на основе сертификатов и даже хранить сертификат в хранилище Key Azure. Мы также можем указать объем нашего сервиса под руководством для создания, а не модифицировать его после этого, поэтому мы можем ограничить принципалы услуг, чтобы иметь доступ к конкретным ресурсам.

Поделитесь своими несчастью с личными полномочиями или любыми вопросами, которые у вас есть ниже!

Ресурсы:

Оригинал: «https://dev.to/azure/you-gotta-keep-privileges-separated-509»