Amazon web services lambda假定角色为空结果

Amazon web services lambda假定角色为空结果,amazon-web-services,amazon-ec2,aws-lambda,assume-role,Amazon Web Services,Amazon Ec2,Aws Lambda,Assume Role,我正在尝试使用帐户A中的Lambda从帐户B获取EC2实例。不确定我缺少了什么 帐户A:Lambda代码正在运行。 帐户B:EC2实例正在运行。 下面假设角色打印访问密钥和会话令牌ID,但不返回任何结果 帐户B中的IAM角色已附加AmazonEC2ReadOnlyAccess策略,并且信任关系具有arn:aws:IAM::帐户A:role/role-name\u帐户A 代码如下: import json import boto3 from collections import OrderedDi

我正在尝试使用帐户A中的Lambda从帐户B获取EC2实例。不确定我缺少了什么

帐户A:Lambda代码正在运行。 帐户B:EC2实例正在运行。 下面假设角色打印访问密钥和会话令牌ID,但不返回任何结果

帐户B中的IAM角色已附加AmazonEC2ReadOnlyAccess策略,并且信任关系具有arn:aws:IAM::帐户A:role/role-name\u帐户A

代码如下:

import json
import boto3
from collections import OrderedDict
from pprint import pprint
import time
from time import sleep
from datetime import date
import datetime
def lambda_handler(event, context):
    # Assume Role To connect to other Account
    sts_connection = boto3.client('sts')
    acct_b = sts_connection.assume_role(
        RoleArn="arn:aws:iam::ACCOUNT_B:role/role_name_account_B",
        RoleSessionName="cross_acct_lambda"
    )
    
    ACCESS_KEY = acct_b['Credentials']['AccessKeyId']
    SECRET_KEY = acct_b['Credentials']['SecretAccessKey']
    SESSION_TOKEN = acct_b['Credentials']['SessionToken']
    # create service client using the assumed role credentials, e.g. S3
    ec2 = boto3.client(
        "ec2",
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
        aws_session_token=SESSION_TOKEN,
    )
    status = ec2.describe_instance_status()
    pprint(status)
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }
结果:

Response:
{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}
Response:
{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}

Request ID:
"ZZZZZZZZZZZZZZZZZZZZ"
结果:

Response:
{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}
Response:
{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}

Request ID:
"ZZZZZZZZZZZZZZZZZZZZ"
功能日志:

START RequestId: ZZZZZZZZZZZZZZZZZZ Version: $LATEST
{'InstanceStatuses': [],

谢谢。

一旦我添加了可以看到结果的区域,感谢John Rotenstein和Jarmod的指导。

代码>{'InstanceStatus':[],行来自
描述实例状态()
,因此它似乎工作正常。如果您认为空结果集不正确,则可能它连接到了错误的区域?错误的区域?错误帐户的凭据?尝试使用awscli:
aws ec2描述实例状态
。感谢John Rotenstein,在我设置后,区域就是问题所在结果可见的地区。感谢您给我一个指导。供将来参考:普遍接受的后续行动是提醒第一个向您提供正确答案的受访者(本例中为John),并要求此人提供答案,然后您接受。