web-dev-qa-db-ja.com

Lambda関数でAWS SESからメールを送信中にアクセスが拒否されました

AWS Lambda関数でAmazon SESを使用してEメールを送信しようとしています。このため、次のエラーに直面しています。

AccessDenied:リソース `arn:aws:ses:us-west-2:XXX:identity/[email protected] 'のユーザーarn:aws:sts::XXXXX:assumed-role/lambda_basic_execution/awslambda_XXXX' is not authorized to performses:SendEmail'

私は許可を与えました

IAMロールの「ses:SendEmail」、「ses:SendRawEmail」。

18
RakeshKalwa

だから、私もラケシュが説明したのと同じ問題を抱えていましたが、彼が言っているステップを理解できませんでした。

次のセキュリティ、アイデンティティ、コンプライアンスを実行する必要があります-> IAM->ロール->ラムダ関数を選択->次にポリシーを編集->それをJSONで開いて以下の部分を追加

{
  "Effect":"Allow",
  "Action":[
    "ses:SendEmail",
    "ses:SendRawEmail"
  ],
  "Resource":"*"
}

または、これらのポリシーの例から要件に従って行うことができます https://docs.aws.Amazon.com/ses/latest/DeveloperGuide/control-user-access.html#iam-and-ses-examples-email -sending-actions また、最初にメールアドレスを確認する必要があるため、忘れないでください。これが皆さんのお役に立てば幸いです。

12
Nishith

長いデバッグの後、問題が発生しました。「lambda_basic_execution」ロールには、「ses:SendEmail」、「ses:SendRawEmail」へのアクセス許可を付与する必要があります。

作成した新しいIAMロールにアクセス許可を付与しようとしたところ、ラムダ関数が「lambda_basic_execution」にマップされているため、不一致があります。

リファレンス- http://docs.aws.Amazon.com/ses/latest/DeveloperGuide/control-user-access.html#iam-and-ses-examples-email-sending-actions

8
RakeshKalwa

SAM Lambdaのポリシーを構成する場合、またはYAML構成ファイルを使用する場合は、次のようなものを使用します。

template.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: '*'
3
Mari Gallegos

IAMポリシーで問題が修正されました。ポリシーの概要には、警告がある場合、つまりリソー​​スが存在しない場合などが表示されます。

JSONには以下が必要です

       {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
0
tomcat

他の人が言ったように、この2つの権限を追加する必要があります:ses:SendEmail、ses:SendRawEmail

サーバーレスフレームワークを使用している人に説明を追加したいだけです

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
0
Abdelhadi Abdo