2014-06-25 3 views
8

내가 IAM 역할을 사용 ansible를 통해 EC2 인스턴스를 만들려고하고 있지만, 새로운 인스턴스를 시작하면서 내가 오류AWS EC2 인스턴스 UnauthorizedOperation instance_profile_name Ansible IAM 역할을 통해 생성 오류

failed: [localhost] => (item= IAMRole-1) => {"failed": true, "item": " IAMRole-1"} 
msg: Instance creation failed => UnauthorizedOperation: You are not authorized to perform 
this operation. Encoded authorization failure message: Ckcjt2GD81D5dlF6XakTSDypnwrgeQb0k 
ouRMKh3Ol1jue553EZ7OXPt6fk1Q1-4HM-tLNPCkiX7ZgJWXYGSjHg2xP1A9LR7KBiXYeCtFKEQIC 
W9cot3KAKPVcNXkHLrhREMfiT5KYEtrsA2A-xFCdvqwM2hNTNf7Y6VGe0Z48EDIyO5p5DxdNFsaSChUcb 
iRUhSyRXIGWr_ZKkGM9GoyoVWCBk3Ni2Td7zkZ1EfAIeRJobiOnYXKE6Q 

IAM 역할 반면 얻을 전체 EC2에 액세스 할 수 있습니다 다음 정책을 준수합니다.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": "ec2:*", 
     "Effect": "Allow", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "elasticloadbalancing:*", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "cloudwatch:*", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "autoscaling:*", 
     "Resource": "*" 
    } 
    ] 
} 

제안 사항을 알려주십시오.

답변

10

여기에있는 문제는 IAM Role for Amazon EC2 자체가 아니기 때문에 처음에는 요청한 EC2 인스턴스에 해당 역할을 '전달'하는 데 필요한 iam:PassRole 권한이 부족한 것처럼 보입니다 (즉, 사용중인 AWS 자격 증명) 자세한 내용은 Granting Applications that Run on Amazon EC2 Instances Access to AWS Resources 내에서 아마존 EC2과 역할을 사용하여 절 필요한 권한을 참조하십시오

는 역할 인스턴스를 시작하려면, 개발자는 IAM 역할을 통과 아마존 EC2 인스턴스를 실행할 수있는 권한 및 권한이 있어야합니다.

다음 샘플 정책을 사용하면 AWS Management 콘솔을 사용하여 역할이있는 인스턴스를 시작할 수 있습니다. 이 정책을 사용하면 사용자는 에 별표 (*)를 지정하여 모든 역할을 전달하고 모든 Amazon EC2 작업을 수행 할 수 있습니다 ( ). ListInstanceProfiles 액션을 사용하면 사용자가 AWS 계정에서 사용할 수있는 모든 역할 을 볼 수 있습니다. 아마존 EC2 콘솔

{ 
    "Version": "2012-10-17", 
    "Statement": [{ 
    "Effect": "Allow", 
    "Action": [ 
     "iam:PassRole", 
     "iam:ListInstanceProfiles", 
     "ec2:*" 
    ], 
    "Resource": "*" 
    }] 
} 

PassRole 허가를 통해이 간접을 필요로하는 이유를 사용하여 모든 역할 인스턴스 를 시작하는 사용자 권한을 부여

예 정책에 대한 능력이다 사용자가 인스턴스를 시작할 때 Amazon EC2 인스턴스에 전달할 수있는 역할을 제한합니다. :

이렇게하면 사용자가 에 부여 된 권한보다 더 많은 권한 (즉, 높은 권한을 얻을 수있는 )이있는 응용 프로그램을 사용자가 실행할 수 없게됩니다. 예를 들어 사용자 인 Alice는 Amazon EC2 인스턴스를 시작하고 은 Amazon S3 버킷에서 작동하지만, Amazon EC2 인스턴스로 전달하는 역할은 IAM 및 DynamoDB에서 작업 할 수있는 권한이 있다는 것을 상상해보십시오. 이 경우 앨리스가 인스턴스를 시작하고 로그인 한 다음 임시 보안 자격 증명을 얻은 다음 그녀가 승인하지 않은 IAM 또는 DynamoDB 작업을 수행 할 수 있습니다. 또한 뷰의 AWS 지점에서 주제를 설명 마이크 교황의 좋은 기사에 대한 Granting Permission to Launch EC2 Instances with IAM Roles (PassRole Permission)에 연결하는보다 정교한 설명을 위해 How to specify an IAM role for an Amazon EC2 instance being launched via the AWS CLI?에 내 대답을 읽어보십시오

.

관련 문제