2013-12-12 8 views
5

Ich weiß, dass Sie eine IAM-Politik den Zugang zu Diensten beschränken einrichten. Ist es jedoch möglich, eine Richtlinie einzurichten, die den Zugriff auf einen Teil eines Dienstes erlaubt?AWS IAM Access Management

z. Ich bin zwei EC2 Instanzen. Ich muss zwei Benutzer erstellen, die Zugriff auf die AWS-Konsole haben, aber nur auf jeweils eine EC2-Instanz.

Antwort

5

Ja, Sie können dies tun, mit Resource-Level Permissions for EC2

Die Struktur der Ressource in the documentation angegeben wird, wie folgt:

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

Hier ist, wie Sie die IAM Richtlinien für jeden Benutzer strukturieren würde:

Benutzer 1

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

Benutzer 2

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

Politik ohne Zugang zu EC2: DescribeInstance wird nicht funktionieren. Sie müssen den Zugriff auf DescribeInstances für alle Ressourcen zulassen und zusätzlichen Zugriff verwalten, z. B. Ändern oder Löschen, je nachdem, was erforderlich ist.

Kurz gesagt, können alle grundlegenden Operationen Stichworte, Instanzen beschreiben mögen, NetworkACLs, Bilder usw. für alle Benutzer und erlauben bestimmte destruktive Aktionen wie Ändern und Löschen von Benutzer auszuwählen.

Liste der EC2 Aktionen für Ihre Referenz hier http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html

So haben Sie 2 Optionen-

  1. eine Richtlinie erstellen, wie unten und fügen Sie die gleiche Politik für beide Benutzer

    { 
        "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. Erstellen Sie 2 verschiedene Richtlinien. Beispiel für einen unter

    { 
        "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**" 
    } 
    ]}