
Пытаюсь немного лучше понять ресурсы/концепции AWS IAM. Я знаю, что есть способ настроить EC2 (возможно, через его базовый AMI или шаблон запуска), чтобы при первом запуске ему автоматически назначались правильная роль/разрешения для вещей, к которым экземпляр должен иметь доступ. Например, если я знаю, что серверу программного обеспечения, работающему на этом экземпляре, потребуется доступ для чтения/записи S3, я должен иметь возможность настроить все так, чтобы мне не нужно было подключаться по SSH к этому экземпляру и настраивать файл ~/.aws/credentials
.
Мойпониманиев том, чтоПользователииРолиявляются ресурсами IAM, которые составляют аутентифицируемые удостоверения. Это означает, что вы можете дать пользователю/роли набор учетных данных, и эти учетные данные затем могут аутентифицироваться в AWS и идентифицировать себя. Я считаю, что рекомендуется давать людям ресурс пользователя, а программному обеспечению — ресурс роли. Таким образом, у меня будет свой собственный пользователь AWS IAM, и этот пользователь будет иметь учетные данные, которые я введу в веб-консоль или CLI для получения доступа к AWS. А моему серверу (который будет развернут в AWS) будет предоставлена роль AWS IAM, например ( myapp-server-dev
), и эта роль будет иметь учетные данные, которые сервер затем сможет предоставить API AWS для аутентификации.
Мойпониманиев том, чтоГруппыпредставляют собой просто наборы пользователей и/или ролей, используемые с целью назначения этим пользователям/ролям определенных наборов разрешений.
Мойпониманиеэто IAMПолитикиявляются этими наборами разрешений, и вы прикрепляете/привязываете политики к пользователям, ролям и/или группам, чтобы предоставить им разрешения на использование различных сервисов/ресурсов AWS.
Мойпониманиеэто IAMПрофили экземпляровкак-то привязать экземпляр EC2 к роли, но именно здесь и кроется моя главная путаница.
Наконец, это мойпониманиечто для того, чтобы сделать так, чтобы:
- Я создаю экземпляры EC2; и
- Этот экземпляр EC2 автоматически получает доступ к нужным сервисам/ресурсам AWS без необходимости вручную устанавливать файлы учетных данных на экземпляре через SSH...
...чтобы это произошло, мне нужно:
- Создайте роль для экземпляра EC2 и любых других экземпляров, на которых будет запущено однородное серверное программное обеспечение (имеющее одинаковые требования к авторизации).
- СоздатьПрофиль экземплярадля экземпляра EC2, привязанного к этой роли
- ПрикрепитьПолитикак этой роли (или любой группе, членом которой является роль), которая предоставляет ей доступ к соответствующим услугам/ресурсам
Итак, во-первых, если что-то из того, что я сказал выше, неточно, пожалуйста, начните вносить некоторые исправления/уточнения в курс дела для меня! Если я правильно все понял, то мой вопрос здесь:как и где связать данный экземпляр EC2 с профилем экземпляра IAM, и как/где связать этот профиль с ролью?
решение1
«Профиль экземпляра IAM» — это роль, если вы используете консоль.
Вы связываете его при создании экземпляра в разделе «Дополнительные сведения».
За кулисами AWS создает для вас профиль экземпляра. Если вы используете командную строку или API, вы можете создать их отдельно, если хотите; см.https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.htmlдля получения подробной информации.