首页 > 解决方案 > 如何为 Django 应用程序创建 IAM 角色?

问题描述

我想IAM Role为我的 Django 应用程序制作一个。我如何从AWS 端Django 端做到这一点?另外,我听说这是最佳实践,但并不真正理解为什么它很重要。有人可以解释一下吗?谢谢!

马尔辛更新:

session = boto3.Session(
    aws_access_key_id=my_key,
    aws_secret_access_key=my_secret
)
s3 = session.resource('s3')

Marcin 的更新 2:

client = boto3.client(
        'ses',
        region_name='us-west-2',
        aws_access_key_id=my_key,
        aws_secret_access_key=my_secret
client.send_raw_email(RawMessage=raw_message)

标签: djangoamazon-web-servicesamazon-iam

解决方案


EB 使用的默认实例角色是aws-elasticbeanstalk-ec2-role。通过在 IAM 控制台中添加内联策略来对其进行自定义的一种方法。

由于您需要 S3、SES 和 SNS,您可以在内联策略中为它们添加权限。不清楚您需要哪些操作(仅适用于 S3,仅针对 SNS 发布消息?),或者如果您有特定的资源(例如,只有一个给定的存储桶或单个 sns 主题),您可以从添加完全访问权限开始服务。但请注意,授予完全访问权限是一种不好的做法,并且不遵循授予最低权限规则。

尽管如此,具有对 S3、SES 和 SNS 的完全访问权限的内联策略的示例是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sns:*",
                "ses:*",
                "s3:*"
            ],
            "Resource": "*"
        }
    ]
}

以下应该足够了:

s3 = boto3.resource('s3')

推荐阅读