Я справляюсь с некоторым развертыванием с амулетом. Однако я не остров, у меня есть коллеги, которые также хотят управлять общими средами.
Я знаю, что могу использовать следующую строку файла конфигурации в ~/.juju/environments.yaml
предоставлять людей доступ к моей среде амулета:
authorized-keys: [and then put their ssh IDs in here]
Что другие лучшие практики доступны для управления несколькими средами с несколькими системными администраторами?
Амулет действительно не в это время, оптимизированное для нескольких администраторов. В частности, некоторые проблемы безопасности, которые в настоящее время замечаются в Амулете, становятся более явными при работе с несколькими администраторами. Однако с некоторыми протестами, это может все еще остаться полезной опцией для доверяемого - и таким образом вероятный маленький - группа администраторов.
Имея это в виду, давайте посмотрим на соответствующие элементы конфигурации в ~/.juju/environment.yaml
файл.
authorized-keys
объект используется в начальной загрузке среды для определения общедоступных ключей SSH для пользователя человечности на узле начальной загрузки (машина 0, на котором ZooKeeper работает), и все впоследствии настроенные узлы. Просто список авторизовал один открытый ключ на строку. Это будет похоже на следующее:
authorized-keys: |
ssh-rsa AAAblahblahZZZZ user@domain
ecdsa-sha2-nistp256 AAAAfoobarZZZZ= user2@domain
Этот подход предпочтителен для использования authorized-keys-path
- или его значение по умолчанию (~/.ssh/
) - который только подходит для одного администратора, учитывая, что необходимо было бы затем совместно использовать ключи SSH (не делают этого!). Проще говоря, это - просто ограничение как authorized-keys-path
реализован.
Затем, облачные поставщики определяют свои определенные учетные данные безопасности, которые затем использует Амулет. Как пример, давайте смотреть на EC2, конкретно AWS. Для AWS два ключа используются для определения доступа: access-key
и secret-key
, соответствие переменным среды AWS_ACCESS_KEY_ID
и AWS_SECRET_ACCESS_KEY
(это значения по умолчанию если не указанный в файле конфигурации). Проблема здесь для нескольких администраторская среда - или даже единственная администраторская среда - то, что эта информация копируется в ZooKeeper и с готовностью видима в узле ZK /environment
. Посмотрите ошибку Амулета № 907094.
В примере AWS определенная степень управления может быть обеспечена на Ваших ключах доступа с помощью Идентификационных данных AWS и управления доступом FAQ (поиск этого), но в настоящее время нет никакого механизма, чтобы предоставить более мелкомодульное управление данному администратору в среде Амулета.
Один дополнительный шаблон, замеченный в нашем собственном использовании, особенно в тестировании, стоит отметить: среда Амулета ("управление"), настроенное на данном узле для управления другими средами Амулета; просто разверните очарование амулета, чтобы иметь, это настроило. Это берет в качестве опции конфигурации environment.yaml
использоваться. Дополнительные администраторы могут затем быть позже авторизованы как ubuntu
пользователь путем ручного добавления их ключей к ~ubuntu/.ssh/authorized-keys
.
Это позволяет, чтобы единственная точка управляла некоторыми из этих проблем при уменьшении головной боли. Это не делает ничего для обращения к некоторым проблемам безопасности, упомянул ранее - у Вас все еще должно быть довольно глубокое доверие Ваших других администраторов.
Амулет будет повторно синхронизировать environments.yaml
к узлу ZK /environment
после использования определенных команд (juju add-unit
, juju constraints-get
, juju constraints-set
, juju deploy
, juju terminate-machine
). На практике это не будет ужасно полезно - за исключением его реального намеченного использования поддержки ограничений. Однако это может помочь минимизировать потребность обновить файлы авторизованных ключей как любые недавно настроенные машины после того, как синхронизация получит это; Вы затем просто были бы ответственны за обновление более ранних настроенных машин.
В то время как я по этому вопросу, это стоит отметить как и где в ~ubuntu/.ssh/authorized-keys
на самом деле используются:
Все команды управления Амулетом, за двумя исключениями, используют туннель SSH для экземпляра ZooKeepeer для управления или информация о поиске от среды Амулета. (juju bootstrap
и juju destroy-environment
непосредственно работа с базовым облачным поставщиком API.), Таким образом, определенно необходимо сохранить authorized-keys
на машине 0 текущих.
juju ssh
и juju scp
позвольте работать с машиной непосредственно, и они также должны иметь текущий authorized-keys
то, что необходимо будет считать обновление в нескольких администраторским случаем. Эти команды значением по умолчанию используют ubuntu
пользователь на целевой машине.