要在AWS控制台进行角色转换,可以使用AWS CLI提供的assume-role命令。下面是一个示例代码,演示了如何连续进行两次角色转换:
# 第一次角色转换
aws sts assume-role --role-arn "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME" --role-session-name "SESSION_NAME" > output.json
# 解析输出JSON文件以获取临时凭证
export AWS_ACCESS_KEY_ID=$(jq -r '.Credentials.AccessKeyId' output.json)
export AWS_SECRET_ACCESS_KEY=$(jq -r '.Credentials.SecretAccessKey' output.json)
export AWS_SESSION_TOKEN=$(jq -r '.Credentials.SessionToken' output.json)
# 第二次角色转换
aws sts assume-role --role-arn "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME" --role-session-name "SESSION_NAME" > output.json
# 解析输出JSON文件以获取第二次角色转换后的临时凭证
export AWS_ACCESS_KEY_ID=$(jq -r '.Credentials.AccessKeyId' output.json)
export AWS_SECRET_ACCESS_KEY=$(jq -r '.Credentials.SecretAccessKey' output.json)
export AWS_SESSION_TOKEN=$(jq -r '.Credentials.SessionToken' output.json)
在上面的代码中,需要将ACCOUNT_ID替换为目标角色所在的AWS账户ID,ROLE_NAME替换为目标角色的名称,SESSION_NAME替换为会话名称。这样,第一次角色转换后的临时凭证将存储在output.json文件中,然后可以使用jq命令解析JSON文件以获取临时凭证的值。然后,可以使用这些凭证进行第二次角色转换,并将第二次转换后的凭证也存储在output.json文件中。最后,再次使用jq命令解析JSON文件以获取第二次转换后的临时凭证的值。