2013-12-12 27 views
5

Wiem, że można skonfigurować politykę IAM w celu ograniczenia dostępu do usług. Czy jest jednak możliwe utworzenie polityki zezwalającej na dostęp do części usługi.AWS Zarządzanie dostępem IAM

E.g. Jestem dwoma instancjami EC2. Muszę utworzyć dwóch użytkowników, tak aby mieli dostęp do konsoli AWS, ale tylko do jednej instancji EC2.

Odpowiedz

5

Tak można to zrobić z Resource-Level Permissions for EC2

Struktura zasobu wykazywany jest in the documentation następująco:

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

Oto jak można zorganizować IAM polityki dla każdego użytkownika:

Użytkownik 1

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

Użytkownik 2

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

Polityka bez dostępu do EC2: DescribeInstance nie będzie działać. Musisz zezwolić na dostęp do DescribeInstances na wszystkich zasobach i zarządzać dodatkowym dostępem, takim jak modyfikowanie, usuwanie do konkretnych instancji w zależności od potrzeb.

Podsumowując, zezwól na wszystkie podstawowe operacje, takie jak Opisuj tagi, Instancje, Sieciowe ACAC, Obrazy itd., Wszystkim użytkownikom i zezwól na konkretne destrukcyjne działania, takie jak Modyfikuj i Usuń, aby wybrać użytkownika.

Lista działań EC2 dla odniesienia tutaj http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html

Więc masz 2 options-

  1. Tworzenie jedną zasadę jak poniżej i dołączyć tę samą politykę zarówno dla użytkowników

    { 
        "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. Utwórz dwie różne zasady. Przykład poniżej poniżej:

    { 
        "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**" 
    } 
    ]} 
    
Powiązane problemy