【问题标题】:django aws ses boto3 - why different IAM credentials are used for verify_email_identitydjango aws ses boto3 - 为什么不同的 IAM 凭证用于 verify_email_identity
【发布时间】:2018-06-05 20:16:06
【问题描述】:

我正在尝试使用 django boto3 aws ses 发送电子邮件。我注意到 verify_email_identity 使用不同的 IAM 凭证,这个集合实际上在哪里?我没有在我的 django 应用程序中设置它。

    client = boto3.client('ses', region_name='us-east-1') 
    client.verify_email_identity(EmailAddress="bounce@example.com") -> IAM user B

    conn = mail.get_connection('django_amazon_ses.EmailBackend') -> IAM user A
    email = EmailMessage(
        'Subject', 'Content', 'bounce@example.com', ['to@example.com'],
        headers={'From': 'from@example.com'},
    )
    self.assertGreater(conn.send_messages([email]), 0) -> IAM user A

IAM 用户 A 拥有所有权限(如下所示),但 IAM 用户 B 没有。对我来说很奇怪为什么它使用 IAM 用户 B,这怎么可能?我检查了我的所有代码,IAM 用户 B 没有这样的设置

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail",
                "ses:VerifyEmailIdentity"
            ],
            "Resource": "*"
        }
    ]
}

在 settings.py 中,这是 IAM 用户 A 凭证,我没有在应用程序的任何地方设置 IAM 用户 B,也许在 mac pc 的其他地方,但我不确定。

AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')

问题是 client = boto3.client 和 verify_email_identity 设置 aws 凭据

【问题讨论】:

    标签: django amazon-web-services boto3 amazon-ses


    【解决方案1】:

    django_amazon_ses 后端是为 Django 设计的。因此它can fetch credentials from your settings

    当您直接使用boto3.client() 时,它不知道您的Django 设置。它会尝试fetch your credentials from several places

    如果您想使用 Django 设置中的凭据,您可以在实例化 boto3 客户端时显式使用它们:

    s3_client = boto3.client(
        'ses', 
        aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, 
        aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY, 
        region_name='us-east-1',
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 2018-01-07
      • 1970-01-01
      相关资源
      最近更新 更多