2017-12-13 9 views
0

メールを送信する際には、クライアント作成時にアクセスキーと秘密鍵を提供する必要があります。 私はこれらのキーを取り除きたいと思いますし、このコードが実行されているラムダ関数のIAMロールアクセスを使ってこれを処理したいと思います。アクセスキーと秘密鍵を提供せずに "node-ses"を使って生の電子メールを送信するには?またはIAMの役割を使用して

ses = require('node-ses'), 
client = ses.createClient({ key: config.get('awsSettings.accessKey'), secret: config.get('awsSettings.secretKey') }), 
+0

ようこそ、読んでください[依頼する方法](https://stackoverflow.com/help/how-to-ask)。 [MCVEの作成方法](https://stackoverflow.com/help/mcve)に特に注意してください。適切なラベル(プログラミング言語、関連技術など)で質問にタグを付けるようにしてください。良い質問を投稿するために、より多くの努力が必要です。読みやすく、理解しやすく、トピック上にあるものです(https://stackoverflow.com/help/on-topic) - その可能性は高いです関連する人々を惹きつけ、あなたはもっと早く助けを得るでしょう。がんばろう! – alfasin

+0

アクセスキーと秘密キーを指定しない場合、ラムダ関数はラムダ関数に割り当てられたロールからそれらを引き継ぎます。 'ses:SendEmail'または' ses:SendRawEmail'パーミッションが許可されていることを確認してください。 –

答えて

2

SESのAPIやSES SMTPサービス・インターフェースのいずれかを使用した場合、SES credentialsのいくつかのフォームを使用して、周りを取得する方法はありません。 node-sesの場合、このライブラリはSendEmail and SendRawEmail SES API呼び出しを実装しているため、このサービスの資格情報の要件に従います。

いずれの場合も、これらの資格情報は、サービスを有効にしたとき、および/またはIAMユーザー、そのユーザーに関連付けられた秘密とアクセスキーを介して構成されたときに、SESによって発行されます。これらの認証情報は、SES SMTPサービスとAPIサービスの両方の認証に使用され、この目的のためにユーザー名とパスワードとして機能します。

You は、SES資格情報の使用を置き換えるためにIAMロールを使用できません。 SESでは、電子メールクライアントがこれらの資格情報をSESサービス認証に使用する必要があります。

Using Credentials With Amazon SESから要約すると:

  • あなたはアマゾンSESのAPIにアクセスしたい場合は、[アクセスキーIDで構成されてAWSのアクセスキー(アクセスキーIDとシークレットアクセスキー)を使用指定されたIAMユーザアカウントの秘密アクセス鍵とを含む。

  • Amazon SES SMTPインターフェイスにアクセスする場合は、ユーザー名とパスワードで構成されるSES SMTP資格情報を使用します。 Amazon SES SMTP認証情報がAWSアクセス のキーとIAMユーザーアクセスキーと異なる場合でも、Amazon SES SMTP認証情報は実際にはIAM認証情報のタイプである です。 StackOverflowのに

+0

質問でSMTPが参照されていません。 'node-ses'はSES APIではなくSMTPを使用していますか? –

+0

良い点。私は今日、脳にSMTPを持っていました。 APIとSMTPサービスの両方でSES資格情報を適切に使用するための回答を更新しました。 –

+0

@RodrigoM返信ありがとう。 私は、sesクライアントを作成する際に、秘密鍵とアクセスキーを渡さずに電子メールを送信することができました。 var client = ses.createClient(); とawsラムダの内部で働いた。これはラムダにすべての権限を与えたb'cozを動かしたかもしれません。 –

関連する問題