我遇到了一个小问题,我真的很难理解它是如何工作的。我有一个我正在编写的工具,它基本上执行描述组织来收集我们 AWS 组织中的所有帐户。根据此处的文档,它说它以 json 帐户响应,在我的情况下将是数百个帐户。所以我写了一些非常简单的代码来将角色切换到我们的主帐户并进行调用:
import boto3
import uuid
import pprint
iam_client = boto3.client('iam')
sts_client = boto3.client('sts')
org_client = boto3.client('organizations')
print("Starting in account: %s" % sts_client.get_caller_identity().get('Account'))
assumedRoleObject = sts_client.assume_role(
RoleArn="arn:aws:iam::123456xxx:role/MsCrossAccountAccessRole",
RoleSessionName="MasterPayer"
)
credentials = assumedRoleObject['Credentials']
org_client = boto3.client(
'organizations',
aws_access_key_id = credentials['AccessKeyId'],
aws_secret_access_key = credentials['SecretAccessKey'],
aws_session_token = credentials['SessionToken'],
)
getListAccounts = org_client.list_accounts(
NextToken='string'
)
但是当我执行代码时,出现以下错误:
“botocore.errorfactory.InvalidInputException:调用 ListAccounts 操作时发生错误 (InvalidInputException):您为 nextToken 指定了无效值。您必须从对 API 的先前调用的响应中获取该值。”
我真的很难理解这意味着什么。我看到了 NextToken,我可以在 AWS 文档中找到很多对它的引用,但我不知道如何实际使用它。比如,我需要用它做什么?