У меня есть это требование для создания роли, которую могут использовать разработчики. У нас есть только одна учетная запись для Dev и Prod (я не рекомендую, я знаю). Созданные ресурсы помечаются с помощью dev или prod для идентификации среды. Требование заключается в том, что разработчики могут иметь ReadOnlyAccess в обеих средах, но могут иметь полный доступ только к ресурсам, помеченным 'dev'
Так что, если разработчик хочет создать ресурс, он должен пометить его с помощью dev. Также он может изменять другие ресурсы, созданные другими пользователями, которые также помечены как dev. Из документации AWS я создал шаблон CloudFormation с приведенным ниже фрагментом, но заметил, что разрешен только ReadOnlyAccess. Разработчик не может создавать ресурсы с тегом «dev» и не может изменять ресурсы, которые уже имеют тег «dev». Любые указатели будут полезны.
Я хотел использовать PowerUseAccess, который является управляемой политикой, но не знал, как я могу предоставить условие поверх управляемой политики.
RoleDeveloper:
Type: AWS::IAM::Role
Properties:
RoleName: DeveloperRole
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
AWS: !Sub arn:aws:iam::${UserAccountId}:root
Action:
- 'sts:AssumeRole'
Path: /
Policies:
- PolicyName: FullDeveloperAccessWithDevTag
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: "*"
Resource: "*"
Condition:
StringEquals:
aws:ResourceTag/env:
- dev
ManagedPolicyArns:
- arn:aws:iam::aws:policy/ReadOnlyAccess