2017-11-08 5 views
0

응용 프로그램이 상주하는 계정에 EC2 설명이있는 IAM 프로필이있는 EC2 인스턴스에서 실행되고 있습니다. 또한 다른 계정에 대한 AssumeRole도 있습니다 (해당 역할은 EC2에 설명을 부여합니다).AWS Java SDK : EC2 인스턴스 프로파일의 AssumeRole?

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

가 기본적으로 제가해야 할 것은 모두에서 EC2 인스턴스를 얻을 수 있습니다 : 여기

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": "ec2:Describe*", 
      "Resource": "*" 
     }, 
     { 
      "Sid": "{SID}", 
      "Effect": "Allow", 
      "Action": [ 
       "sts:AssumeRole" 
      ], 
      "Resource": [ 
       "arn:aws:iam::{ACCT_NUM}:role/{ROLE_NAME}" 
      ] 
     } 
    ] 
} 

보조 계정에서 IAM 역할은 다음과 같습니다과 같은 주요 계정 내 IAM 역할은 모습입니다 계정. 현재 SDK에서 가능합니까? 현재는 주 계정에서만 인스턴스를 가져오고 있습니다.

답변

1

예, SDK를 사용할 수 있습니다. 기본 (기본) 계정의 자격 증명을 사용하여 EC2 인스턴스를 나열하면 STS를 사용하여 AssumeRole()을 호출하여 교차 계정에 대한 자격 증명을 얻습니다. 그런 다음 해당 EC2 인스턴스를 나열하십시오.

+0

AssumeRole() 호출에 대해 ARN/세션 이름을 제공해야합니까? 애플리케이션이 실행중인 인스턴스 프로파일에서 애플리케이션을 가져올 수 있습니까? – jkinz

+0

하나의 역할 만 인스턴스에 지정할 수 있습니다. 다른 역할을 맡으려면 전체 ARN을 지정해야합니다. 어떤 언어를 사용합니까? –

+0

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html –

3

ec2:AssumeRole을 추가해도 계정에 명령이 자동으로 전파되지 않습니다.

인스턴스 정보를 가져올 각 AWS 계정 & 지역에 대해 ec2:DescribeInstances 번씩 전화해야합니다.

EC2의 IAM 역할을 통해 기본 계정에 액세스 할 수 있습니다. 이 신임 정보만으로 ec2:DescribeInstances을 호출하면 해당 계정에 대한 EC2 인스턴스 정보 만 제공됩니다.

다음으로 보조 계정에 대한 새 자격 증명을 받으려면 ec2:AssumeRole으로 전화해야합니다. 해당 계정이 있으면 보조 계정으로 ec2:DescribeInstances 번으로 문의하십시오.