Могу ли я получить учетные данные по роли AWS IAM, опубликованной другой учетной записью aws?

К сожалению, я потерял несколько дней для этой работы.

Как я могу получить временные учетные данные по роли IAM? Это возможно?

Вот мой сценарий и код.(AWS SDK на Java)

  • Экземпляр STS с помощью учетной записи AWS accessKey и secretKey

    AWSSecurityTokenService tokenService = new AWSSecurityTokenServiceClient(new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret()));
    
  • сделать AssumeRoleRequest

    AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest();
    assumeRoleRequest.setRoleArn(arn);
    assumeRoleRequest.setDurationSeconds(900);
    assumeRoleRequest.setRoleSessionName("for_test");
    assumeRoleRequest.setExternalId("ext_id");
    
  • получить 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 Role и IAM User.

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

РЕДАКТИРОВАТЬ:

Я протестировал политику (измененную) с помощью IAM Policy Simulator. Выбрать AWS Security Token Service-AssumeRole с IAM Role ARN - это разрешено.

1 ответ

Решение

Вы должны добавить доверительные отношения к своей роли IAM, чтобы разрешить их использование.

Другие вопросы по тегам