Я создал группу разработки, в которой я хочу наложить групповую встроенную политику, которая позволила бы каждому члену иметь возможность описывать экземпляры EC2, у которых есть тег с ключевым «Product», значение которого равно «TestProduct». В приведенном ниже примере не предоставляется требуемый доступ, и если я оставлю resosurce *, он будет работать, так что это что-то, что я определяю, а не учетные данные или более высокий уровень.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "XXXX",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Product": "TestProduct"
}
}
}
]
}
Ошибка, которую я получаю в aws cli: Произошла ошибка (UnauthorizedOperation) при вызове операции DescribeInstances: у вас нет прав для выполнения этой операции.
В ec2:DescribeInstances
команда не поддерживает разрешения на уровне ресурсов. Это означает, что вы должны указать *
как Resource
в заявлении о политике IAM. Если вы укажете что-нибудь кроме *
для Resource
, то авторизация не удастся (как вы уже видели).
Это означает, что вы не можете «скрыть» экземпляры от определенных пользователей IAM. Либо пользователь IAM увидит все экземпляры, либо ни одного.
В следующем документе представлен список команд, поддерживающих разрешения на уровне ресурсов: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-iam-actions-resources.html