2015-12-16 1 views
3

У нас есть две учетные записи AWS. Один для производства, другой - для тестирования. Нам нужно различать окружающую среду, в которой мы работаем. Мы видим, что простой способ - получить имя учетной записи, и как только мы получим, что это будет очень просто. Но мы не знаем, как получить его из учетных данных AWS или свойств. Кто-нибудь имеет представление о том, как получить информацию об учетной записи с использованием учетных данных AWS? Я рассмотрел возможность разрешения учетной записи, тип учетной записи и т. Д., Но я думаю, что это не должно мешать нам получать имя учетной записи?Как получить данные учетной записи AWS с помощью java api? Не для пользователя IAM

+0

AWS имеет функцию групповой ресурс, это поможет вам для вашей проблемы. – BMW

+0

Спасибо @BMW, получил точку. –

+0

ответил на http://stackoverflow.com/questions/10197784/how-can-i-deduce-the-aws-account-id-from-available-basicawscredentials – phoenix

ответ

3

Вы можете увидеть GetUserResult. Это возвращается getUser(). GetUserResult имеет способ получить User. У этого User есть все поля для получения необходимой вам информации.

1

взгляд на номер счета, который возвращается в get_user (IAM пользователя) например,

"Arn": "arn:aws:iam::THISISYOURNUMERICACCOUNTNUMBER:user/lcerezo"

+0

Да, я сделал то же самое. –

2

AmazonIdentityManagementClient iamClient = новый AmazonIdentityManagementClient();

Строка accountNumber = iamClient.getUser(). GetUser(). GetArn(). Split (":") [4]);

+0

Добавить дополнительную информацию о том, почему этот ответ будет работать для OP – NSNoob

2

Если вы используете услугу Secured Token Service, вы не сможете получить информацию о пользователе, чтобы получить номер счета. Вместо этого вы можете использовать эту роль. Ниже приведен пример кода.

AmazonIdentityManagementClient iamClient = new AmazonIdentityManagementClient(); 
GetRoleRequest getRoleRequest = new GetRoleRequest(); 
getRoleRequest.setRoleName("roleName"); 
String accountNumber = iamClient.getRole(getRoleRequest).getRole().getArn().split(":")[4]; 
+1

Не лучший подход, но работает для меня. Надеюсь, что амазонки ребята читают такие сообщения и добавят getAccountId к API. –

1

с довольно недавно AWS Java SDK можно использовать getCallerIdentity:

AWSSecurityTokenServiceClientBuilder.standard().build() 
    .getCallerIdentity(new GetCallerIdentityRequest()).getAccount() 
Смежные вопросы