【问题标题】:How to use Amazon SES with dynamic credentials?如何将 Amazon SES 与动态凭证一起使用?
【发布时间】:2022-11-11 19:25:24
【问题描述】:

我正在使用 Django/Python,我想在同一台服务器上使用多个 Amazon SES 凭证。

我发现 boto3 可以使用 Amazon API,但它需要使用文件或环境变量设置凭据。这是我不能(或很难)在运行时更改它。

如何在运行时动态设置凭据?

我正在寻找类似的解决方案:(boto3 不是强制性的,我可以使用任何解决方案)

CREDS = {
    "foo": {
        "AWS_ACCESS_KEY_ID": "XXX",
        "AWS_SECRET_ACCESS_KEY": "XXX",
        "AWS_DEFAULT_REGION": "us-east-1",
    },
    "bar": {
        "AWS_ACCESS_KEY_ID": "YYY",
        "AWS_SECRET_ACCESS_KEY": "YYY",
        "AWS_DEFAULT_REGION": "us-east-1",
    },
}

my_config = CREDS.get("foo") # or "bar"
client = boto3.client('ses', config=my_config)

我该如何实施?

【问题讨论】:

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


    【解决方案1】:

    实际上有几种方法可以做到:

    您也想要的方式几乎是正确的。 我建议要么在 boto3.client 中设置它,要么使用会话,一切都应该按预期工作。

    例子:

    import boto3
    
    client = boto3.client(
        's3',
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
        aws_session_token=SESSION_TOKEN
    )
    

    如果需要,您还可以创建一个包含多个配置文件的 aws 配置文件,您可以在应用程序中获取这些配置文件。

    一切都在这里解释: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多