Rak*_*lwa 15 javascript email amazon-web-services aws-sdk aws-lambda
我正在尝试使用AWS Lambda函数中的Amazon SES发送电子邮件,为此我遇到以下错误.
AccessDenied:用户
arn:aws:sts::XXXXX:assumed-role/lambda_basic_execution/awslambda_XXXX' is not authorized to performses:资源上的SendEmail`arn:aws:ses:us-west-2:XXX:identity /example@example.com'
我已经批准了
用于IAM角色的"ses:SendEmail","ses:SendRawEmail".
mod*_*ron 13
如果您正在为 SAM Lambda 配置策略或使用 YAML 配置文件,则可以使用如下内容:
模板.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: 'your-email-lambda'
Resources:
YourEmailFunction:
Type: AWS:Serverless::Function
Properties:
Policies:
- Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- 'ses:SendEmail'
- 'ses:SendRawEmail'
Resource: '*'
Run Code Online (Sandbox Code Playgroud)
因此,我也遇到了与Rakesh解释过的问题相同的问题,但是无法理解他说的要这样做的步骤,这里是一个详细的步骤说明。
您需要执行以下安全性,身份和合规性-> IAM->角色->选择lambda函数->然后编辑策略->在JSON中打开它并添加以下部分
{
"Effect":"Allow",
"Action":[
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource":"*"
}
Run Code Online (Sandbox Code Playgroud)
或者您可以根据要求从这些政策示例中进行操作https://docs.aws.amazon.com/ses/latest/DeveloperGuide/control-user-access.html#iam-and-ses-examples-email-sending-actions 另外,您需要首先验证电子邮件地址,所以不要忘记这一点。希望这对大家有帮助。
经过长时间的调试我遇到了问题,"lambda_basic_execution"角色需要被授予访问"ses:SendEmail","ses:SendRawEmail"的权限.
我试图为我创建的新IAM角色授予权限,但lambda函数映射到"lambda_basic_execution",因此存在不匹配.
正如其他人所说,您应该添加这两个权限: ses:SendEmail,ses:SendRawEmail
我只是想为那些使用 Serverless 框架的人添加解释
在 serverless.yml 中:
provider:
name: aws
stage: dev
runtime: nodejs10.x
region: us-west-1
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
- lambda:InvokeFunction
- ses:SendEmail # add this
- ses:SendRawEmail # add this
Resource: '*' # add this
Run Code Online (Sandbox Code Playgroud)