【问题标题】:What is the AWS SDK API for adding a Resource-based policy to a Lambda function in AWS?用于将基于资源的策略添加到 AWS 中的 Lambda 函数的 AWS 开发工具包 API 是什么?
【发布时间】:2021-04-02 22:20:34
【问题描述】:

我没能找到它,谷歌搜索了很多...我尝试使用 Amazon.Lambda.AmazonLambdaClientAmazon.IdentityManagement.AmazonIdentityManagementServiceClient 和其他 API,但没有成功。

我可以使用var policy = await lambdaClient.GetPolicyAsync(new GetPolicyRequest{FunctionName = "my-lambda" }); 阅读该政策,但不能更改它。

在 AWS 控制台中,就是页面:

【问题讨论】:

    标签: amazon-web-services aws-sdk aws-sdk-net


    【解决方案1】:

    AddPermission

    授予 AWS 服务或其他账户使用函数的权限。您可以在功能级别应用策略,或指定限定符以限制对单个版本或别名的访问。如果您使用限定符,调用者必须使用该版本的完整 Amazon 资源名称 (ARN) 或别名来调用函数

    Granting function access to AWS services

    To grant Amazon S3 permission to invoke a function

     var params = {
      Action: "lambda:InvokeFunction", 
      FunctionName: "my-function", 
      Principal: "s3.amazonaws.com", 
      SourceAccount: "123456789012", 
      SourceArn: "arn:aws:s3:::my-bucket-1xpuxmplzrlbh/*", 
      StatementId: "s3"
     };
     lambda.addPermission(params, function(err, data) {
       if (err) console.log(err, err.stack); // an error occurred
       else     console.log(data);           // successful response
       /*
       data = {
        Statement: "{\"Sid\":\"s3\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"s3.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-2:123456789012:function:my-function\",\"Condition\":{\"StringEquals\":{\"AWS:SourceAccount\":\"123456789012\"},\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:s3:::my-bucket-1xpuxmplzrlbh\"}}}"
       }
       */
     });
    

    【讨论】:

    • 谢谢,在 C# 中也找到了它——它是:new Amazon.Lambda.AmazonLambdaClient().AddPermissionAsync(new AddPermissionRequest{...})
    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多