2012-11-25 19 views
6

Mogę uruchomić instancję ec2 z iam-rolą w konsoli zarządzania. Ale nie mam pojęcia jak uruchomić EC2 instancji z iam-role z AWS-ruby-SDKJak uruchomić instancję ec2 z rolą iam?

iam-role " test"'s Policy is here 
    "Effect": "Allow", 
    "Action": "*", 
    "Resource": "*" 

Oto wynik:

/var/lib/gems/1.8/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:318:in `return_or_raise': 
You are not authorized to perform iam:PassRole with arn:aws:iam::xxxxxxxxxxx:role/test 
(AWS::EC2::Errors::UnauthorizedOperation) 

Odpowiedz

9

Poświadczenia używasz ze skryptu Ruby nie mają uprawnień do uruchamiania instancji za pomocą roli testowej IAM. Trzeba zmodyfikować politykę dla tego użytkownika, i przyznać jej IAM: PassRole uprawnienie, np:

{ 
    "Statement": [{ 
     "Effect":"Allow", 
     "Action":"ec2:RunInstances", 
     "Resource":"*" 
    }, 
    { 
     "Effect":"Allow", 
     "Action":"iam:PassRole", 
     "Resource":"arn:aws:iam::xxxxxxxxxxx:role/test" 
    }] 
} 

Jest to funkcja bezpieczeństwa - możliwe jest zdekonfigurować IAM, aby umożliwić eskalacja uprawnień, więc AWS używa " bezpieczne domyślnie "zasady.

Można również skorzystać z tej zasady, aby umożliwić użytkownikom uruchamianie instancji przy użyciu dowolnego IAM rolę - ale należy wziąć pod uwagę wpływ na bezpieczeństwo przed wykonaniem tego:

{ 
     "Effect":"Allow", 
     "Action":"iam:PassRole", 
     "Resource":"*" 
    }] 

Ref: http://docs.amazonwebservices.com/IAM/latest/UserGuide/role-usecase-ec2app.html

Powiązane problemy