Я создал политику с этим json и прикрепил ее к роли, которую я запускал с помощью лямбды. Мне удалось получить арсенал роли IAM: Role с тегом «значение ключа» и отказ в доступе к тегу, который этого не сделал. Возможно, вы неправильно подключаете политику или, возможно, пытаетесь выполнить действие, используя другую роль, попробуйте создать профиль экземпляра, присоединить его к ec2 и выполнить команды оттуда или через лямбду. tldr; проблема json в другом месте.
{
"Version": "2012-10-17",
"Statement": [
{
"Condition": {
"StringLike": {
"iam:ResourceTag/key": "value"
}
},
"Action": [
"iam:GetRole"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Вот полный стек CF, который я использовал. Это чертовски, и, очевидно, принцип должен быть изменен в зависимости от ваших потребностей.
Resources:
Role:
Type: "AWS::IAM::Role"
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
- edgelambda.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- !Ref Policy
Policy:
Type: AWS::IAM::ManagedPolicy
Properties:
ManagedPolicyName: Get_Role_With_Tag__Policy
Path: /
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- iam:GetRole
Condition:
StringLike:
iam:ResourceTag/key: "value"
Resource: "*"