我在帐户a中有一个lambda函数,试图从帐户B访问资源。创建了一个新的lambda角色,该角色具有基本执行功能,可以将日志上载到cloud watch。
以下是我在Python 3.7中的函数代码:
import boto3
allProfiles = ['account2']
def lambda_handler(event, context):
sts_connection = boto3.client('sts')
acct_b = sts_connection.assume_role(
RoleArn="arn:aws:iam::2222222222:role/role-on-source-account",
RoleSessionName="account2"
)
for profiles in allProfiles:
print("\nusing profile %s" % profiles)
newMethod..
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
还修改了账户B中假定角色的信托政策,如文件中所述:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/
错误:调用AssumeRole操作时出错(AccessDenied):用户:arn:aws:sts::11111111:未授权假定角色/lambda角色/lambda函数对资源执行:sts:AssumeRole:arn:aws:iam::2222:源帐户上的角色/role”
注意:我能够在本地成功运行此功能,但在lambda中无法。
好的,我们得到的是:
>
会计烧烤
你提到你的lambda有基本的执行力,光是这一点是不够的。。。
解决方案:
>
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::AccountBBucket"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::AccountBBucket/*"
}
]
}
授予访问权限:
我们现在将使用我们之前创建的角色,(UpdateBucket)角色
这需要添加到您的帐户B权限
我们现在在帐户B中:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::999:role/UpdateBucket"
}
}
此处的更多信息:使用IAM角色跨AWS帐户委派访问权限
创建了一个新的lambda角色,该角色具有基本执行权限,可以将日志上载到cloud watch
lambda的基本执行角色不够。您需要明确允许您的函数假定角色
。执行角色中的以下语句应有帮助:
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::2222222222:role/role-on-source-account"
]
}
此问题不是此请求的重复,未授权执行此操作。Azure blobClient 我想从Azure函数访问Azure数据湖。我使用托管标识,并在我的数据湖IAM选项卡中为该功能分配了一个“所有者”角色。一切工作,但只有当我允许“所有网络”在我的数据湖。当我切换到“选定的网络”时,我会得到“此请求未被授权执行此操作”,尽管我将我的Azure函数的所有出站IP地址添加到了我的数据湖的防火墙规则中。 我在Az
我已经实现了一个lambda授权器,并将其与API网关上的lambda代理集成进行了集成。 当我从API网关测试authorizer时,它工作得很好,但是当我试图从Postman调用第二个lambda上的endpoint时,请求似乎跳过了authorizer并直接命中第二个lambda。
我有一个受IAM授权保护的API,它是一个资源策略,允许IAM用户调用API。 现在我想写一个lambda函数来调用同一个API。假设我可以访问IAM访问密钥和密码(通过环境变量或AWS Secret Manager),我如何对用户进行IAM授权,以便它可以成功地调用API? 用于调用相同API的示例代码(未经IAM授权):
我们正在使用AWS Lambda授权器和API网关来保护我们的下游API。 下面是我们基于Java的lambda授权程序的代码片段 我们需要401(“未经授权”)作为一个回应,有人能请帮助如何做这一点吗?我们有用Java编写的lambda授权器。
我的经理在AWS中为我分配了一个IAM角色,我正在尝试建立一个Amazon数据管道。在尝试激活管道时,我反复遇到如下权限问题和授权问题。 警告:验证角色“DataPipelineDefaultRole”时出错。错误:状态代码:403,AWS服务:AmazonIdentityManagement,AWS请求ID:fbf1935a-bcf1-11e3-82d4-cd47aac2f228,AWS错误代码
非常好的一天, 任何帮助都很感激。提前谢了。