2017-03-28 11 views
0

불행히도, 나는이 작업에 대한 serveral 일 잃었습니다.다른 AWS 계정에서 AWS IAM 역할을 통해 자격 증명을 얻을 수 있습니까?

IAM 역할을 통해 임시 자격 증명을 얻으려면 어떻게해야합니까? 이것이 가능한가? 여기

내 시나리오와 코드입니다. (자바에 AWS SDK)

  • STS AWS 계정 액세스 키에 의해 인스턴스와의 비밀

    AWSSecurityTokenService tokenService = new AWSSecurityTokenServiceClient(new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret())); 
    
  • AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest(); 
    assumeRoleRequest.setRoleArn(arn); 
    assumeRoleRequest.setDurationSeconds(900); 
    assumeRoleRequest.setRoleSessionName("for_test"); 
    assumeRoleRequest.setExternalId("ext_id"); 
    
  • AssumeRoleRequest하기 SessionCredentials 받기

    AssumeRoleResult roleResult = tokenService.assumeRole(assumeRoleRequest); 
    Credentials credentials = roleResult.getCredentials(); 
    
    AWSCredentials awsCredentials = new BasicSessionCredentials(credentials.getAccessKeyId(), credentials.getSecretAccessKey(), credentials.getSessionToken()); 
    
  • 작업은

    AmazonCloudFrontClient cloudFrontClient = new AmazonCloudFrontClient(awsCredentials); 
    

AWSSecurityTokenServiceException

User: arn:aws:iam::{account}:user/{user_name} is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::{role_account}:role/{role_name} (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; 

가이 같은 정책을 던졌습니다. IAM 역할과 IAM 사용자 모두에게 첨부하십시오.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1490674259000", 
      "Effect": "Allow", 
      "Action": [ 
       "sts:AssumeRole" 
      ], 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

편집 :

내가 (수정) 정책을 테스트 IAM 정책 시뮬레이터. AWS Security Token Service-AssumeRoleIAM Role ARN으로 선택 - 허용됩니다.

+1

다른 AWS 계정에서 역할을 맡고 있습니까? 귀하의 역할에 [신뢰 관계]가 있습니까 (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)? –

+0

@JohnRotenstein 정말 고마워요! 신뢰 관계를 확인하고 매개 변수를 수정합니다. 그것은 작동합니다! – myoungjin

답변

1

trust relationship을 IAM 역할에 추가하여이를 허용해야합니다.

+0

감사합니다! 그것은 작동합니다! – myoungjin