Роли AWS IAM: что такое доверенный объект?

У меня есть роль, прикрепленная к LaunchConfiguration для экземпляра EC2, которая дает привилегии экземпляра EC2 для выполнения определенных вещей, например ведения журналов Cloudwatch (контекст не важен для вопроса). В Cloudformation эта роль выглядит так:

    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
        - Effect: Allow
          Principal:
            Service: 'ec2.amazonaws.com'
          Action: 'sts:AssumeRole'
      Policies: ...

Если я просматриваю роль в консоли AWS, в разделе «Отношения доверия» говорится «Доверенные объекты: поставщик (и) удостоверений ec2.amazonaws.com» :


enter image description here


Я предполагаю, что Cloudformation AssumeRolePolicyDocument.Principal.Служба отображается на «Доверенный объект» в консоли (что, кстати, является странным способом называть вещи, потому что я прочитал «Принципал» как имеющий другое значение в IAM, но в любом случае ... ). Я напрягаю свой мозг, пытаясь собрать воедино то, что происходит. У меня следующие вопросы:

  1. Что такое «доверенный объект» IAM?
  2. Каким образом объект 'ec2.amazonaws.com' «принимает на себя роль»? Концепция службы 'ec2.amazonaws.com' , предполагающая, что ролл просто мне не нравится.
  3. В каком смысле объект 'ec2.amazonaws.com' «предоставляет идентификационные данные»?
  4. Где я могу найти полный список этих так называемых доверенных объектов?
0
задан 9 June 2021 в 17:28
1 ответ
  1. Доверенный объект - это служба, которая может выполнять любую заданную роль. Если вы сделаете EC2 доверенным объектом, вы не сможете взять на себя роль для использования разрешений, лямбда не сможет взять на себя роль, только экземпляр EC2. Большинству сервисов в AWS разрешения предоставляются в виде ролей. Многие сервисы могут настроить это автоматически, что является обычным явлением, когда люди изучают AWS. Когда вы работаете в безопасных средах, установка ролей и разрешений становится критически важной. Например, если вы дадите EC2 роль с правами администратора и кто-то скомпрометирует экземпляр, у него будут фактически права администратора в вашей учетной записи AWS, поэтому вы предоставляете всем ресурсам / ролям наименьшие разрешения.
  2. Когда вы настраиваете ресурс, такой как экземпляр EC2 или лямбда-функция (и т. Д.), Вы указываете ему, какую роль взять на себя. Этот экземпляр / функция EC2 / и т. Д. Затем имеет разрешения, связанные с ролью.
  3. Это просто означает, что экземпляру EC2 разрешено брать на себя эту роль. Когда экземпляр EC2 запускается, он определяет роль, которую он хочет принять. IAM проверяет, что роли разрешено принимать эту роль, и разрешено запускать экземпляр.
  4. Здесь есть список руководителей сервисов AWS . Когда вы нажимаете «создать роль» в консоли, вы получаете список доверенных объектов. Когда мне нужно вставить его в CloudFormation, я просто нажимаю на него, затем копирую и вставляю его из json.

AssumeRolePolicyDocument определяет, кто может взять на себя эту роль.Я подозреваю, что вы можете указать несколько сущностей, которые могут взять на себя роль, но на практике я пишу роль для каждой службы.

Вы можете думать о ролях IAM, подобных ролям людей. Моя роль «архитектора компании XYZ» давала мне права входить в офис, входить в систему и тому подобное. Если я беру на себя роль, скажем, полицейского, у меня есть дополнительные права, такие как вход в полицейский участок, арест людей и т. Д.

1
ответ дан 28 July 2021 в 14:06

Теги

Похожие вопросы