У меня есть роль, прикрепленная к 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» :
Я предполагаю, что Cloudformation AssumeRolePolicyDocument.Principal.Служба
отображается на «Доверенный объект» в консоли (что, кстати, является странным способом называть вещи, потому что я прочитал «Принципал» как имеющий другое значение в IAM, но в любом случае ... ). Я напрягаю свой мозг, пытаясь собрать воедино то, что происходит. У меня следующие вопросы:
AssumeRolePolicyDocument определяет, кто может взять на себя эту роль.Я подозреваю, что вы можете указать несколько сущностей, которые могут взять на себя роль, но на практике я пишу роль для каждой службы.
Вы можете думать о ролях IAM, подобных ролям людей. Моя роль «архитектора компании XYZ» давала мне права входить в офис, входить в систему и тому подобное. Если я беру на себя роль, скажем, полицейского, у меня есть дополнительные права, такие как вход в полицейский участок, арест людей и т. Д.