我试图在邮递员中获取给定IAM的会话令牌,但无法接收令牌。
如果我使用boto3.client('sts'),则可以获取令牌。
用例:我试图从运行ServiceNow中服务器实例的EC2实例调用VPC休息端点。由于我们在EC2实例上运行了ServiceNow中服务器代理,因此我想使用附加到EC2上的IAM角色来验证部署在同一AWS账户中的其他VPC终端节点。
我在IAM角色上附加了权限策略,以允许使用角色角色策略。如果还有其他方法,请提出建议。
此处HTML邮递员中的HTML响应。邮递员重定向到IAM文档
client = boto3.client('sts')
response = client.assume_role(
RoleArn='arn:aws:iam::**************:role/ServiceNow-midserver-Role',
RoleSessionName='Session1',
DurationSeconds=3600
)
print(response)
邮递员请求正文或端点有任何错误。 没有邮递员身份验证。
答案 0 :(得分:0)
您需要使用IAM用户或IAM角色的凭据来调用AssumeRole。 boto3必须从其要查找的标准位置获取凭据(例如〜/ .aws / config)[参考:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html]。也许您可以尝试在Postman的“授权”选项卡中提供AWS凭证,将类型选择为AWS Signature,然后调用承担角色。
答案 1 :(得分:0)
要从Postman(或curl等)调用AssumeRole(而不是使用受支持的AWS开发工具包),请遵循AssumeRole API documentation。您还需要使用AWS凭证进行身份验证。
具体来说,该请求是HTTP GET,并且参数作为查询字符串传递,例如:
GET https://sts.amazonaws.com/
?Version=2011-06-15
&Action=AssumeRole
&RoleSessionName=stackoverflow-64706420
&RoleArn=arn:aws:iam::123456781234:role/myrole
&DurationSeconds=3600
这就是邮递员的样子:
您将需要添加AWS凭证,以便正确签名您的API请求,例如:
点击“发送”,响应将如下所示:
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<AssumedRoleUser>
<Arn>arn:aws:sts::123456781234:assumed-role/123456781234/stackoverflow-64706420</Arn>
<AssumedRoleId>ARO123EXAMPLE123:stackoverflow-64706420</AssumedRoleId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>ASIAIOSFODNN7EXAMPLE</AccessKeyId>
<SecretAccessKey>wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY</SecretAccessKey>
<SessionToken>
AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
</SessionToken>
<Expiration>2020-12-09T13:34:41Z</Expiration>
</Credentials>
<PackedPolicySize>6</PackedPolicySize>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>