2013-12-12 6 views
5

Я знаю, что вы можете настроить политику IAM для ограничения доступа к службам. Однако можно ли настроить политику для доступа к части сервиса.AWS IAM Управление доступом

E.g. Я два экземпляра EC2. Мне нужно создать двух пользователей, чтобы они имели доступ к консоли AWS, но только к одному экземпляру EC2.

ответ

5

Да, вы можете сделать это с Resource-Level Permissions for EC2

Структура ресурса указывается in the documentation следующим образом:

arn:aws:[service]:[region]:[account]:resourceType/resourcePath 

Вот как вы бы структурировать IAM политики для каждого пользователя:

Пользователь 1

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
     "Effect": "Allow", 
     "Action": "ec2:*", 
     "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/InstanceIdOne" 
    } 
    ] 
} 

Пользователь 2

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
     "Effect": "Allow", 
     "Action": "ec2:*", 
     "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/InstanceIdTwo" 
    } 
    ] 
} 
1

Политика без доступа к EC2: DescribeInstance не будет работать. Вы должны разрешить доступ к Описаниям всех ресурсов и управлять дополнительным доступом, например, изменять, удалять до определенных экземпляров в зависимости от того, что это необходимо.

Короче говоря, разрешите всем основным операциям, таким как Описать теги, экземпляры, NetworkACL, изображения и т. Д. Всем пользователям и разрешить конкретные деструктивные действия, такие как «Изменить» и «Удалить», чтобы выбрать пользователя.

Список EC2 действий для вашей ссылки здесь http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html

Так у вас есть 2 options-

  1. Создайте одну политику, как показано ниже и приложить ту же политику, как для пользователей

    { 
        "Version": "2012-10-17", 
        "Statement": [{ 
        "Effect": "Allow", 
        "Action": "ec2:*Describe*", 
        "Resource":"*", 
        }, 
        { 
        "Effect": "Allow", 
        "Action": [ 
         "ec2:*Modify*", 
         "ec2:*Delete*" 
        ], 
        "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-1**" }, 
        "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdOne**" 
    }, 
    { 
        "Effect": "Allow", 
        "Action": [ 
         "ec2:*Modify*", 
         "ec2:*Delete*" 
    ], 
        "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-2**" }, 
        "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdTwo**" 
    } 
    ]} 
    
  2. Создайте 2 разных политики. Пример для одного ниже

    { 
        "Version": "2012-10-17", 
        "Statement": [{ 
        "Effect": "Allow", 
        "Action": "ec2:*Describe*", 
        "Resource":"*", 
        }, 
        { 
        "Effect": "Allow", 
        "Action": [ 
         "ec2:*Modify*", 
         "ec2:*Delete*" 
        ], 
        "Principal": { "AWS": "arn:aws:iam::AWS-account-ID:user/**user-name-1**" }, 
        "Resource": "arn:aws:ec2:us-east-1:AWS-account-ID:instance/**InstanceIdOne**" 
    } 
    ]} 
    
Смежные вопросы