Я пытаюсь автоматизировать некоторые теги с помощью Ansible playbooks.Одна из вещей, которую я хочу сделать, - пометить ресурс именем пользователя, который его создал.Проблема в том, что sts-accept-role скрывает пользовательские данные учетной записи верхнего уровня.
# cat ~/.aws/credentials
[default]
aws_secret_access_key = gggggggggggggggggggggggggggggggggg
aws_access_key_id = JJJJJJJJJJJJJJJJJJJJ
[childaccount]
role_arn = arn:aws:iam::0123456789:role/child-acct-admin
source_profile = default
# aws iam get-user
{
"User": {
"Arn": "arn:aws:iam::4567891230:user/someuser",
"UserName": "someuser",
"UserId": "CCCCCCCCCCCCCCCCC",
"Path": "/",
"CreateDate": "2018-01-04T15:21:51Z",
"PasswordLastUsed": "2019-01-11T15:24:32Z"
}
}
# aws opsworks --region us-east-1 describe-my-user-profile
{
"UserProfile": {
"IamUserArn": "arn:aws:iam::4567891230:user/someuser",
"Name": "someuser",
"SshUsername": "someuser"
}
}
# export AWS_DEFAULT_PROFILE=childaccount
# aws opsworks --region us-east-1 describe-my-user-profile
{
"UserProfile": {
"SshUsername": "child-acct-admin-botocore-sess",
"Name": "child-acct-admin/botocore-session-123456789",
"IamUserArn": "arn:aws:sts::234567898:assumed-role/child-acct-admin/botocore-session-123456789"
}
}
# aws iam get-user
An error occurred (ValidationError) when calling the GetUser operation: Must specify userName when calling with non-User credentials
Мне нужна какая-то команда, которую я могу выполнить, чтобы предоставить мне данные учетной записи верхнего уровня.Единственная возможность, о которой я могу подумать, - это проанализировать файл учетных данных и попытаться использовать имя предполагаемой роли для сопоставления с загруженным профилем и родительским профилем.Затем передайте ключи непосредственно учетной записи верхнего уровня (в данном примере по умолчанию), чтобы указать действительное имя пользователя.Это намного сложнее, чем должно быть.