django - 如何为 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)
解决方案
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')
推荐阅读
- html - 手动设置 MaterialUI Switch 组件的大小
- xamarin.forms - 如何在 Xamarin Forms 中使用 Plugin.BLE 检测智能手机
- angular - contenteditable div 在编辑时正在集中注意力
- node.js - Discord OAuth 有时不会完成
- java - javafx.fxml.LoadException 错误!有任何想法吗?
- c# - 设计datagridview,在第一行搜索
- rxjs - 如何使用 ngrx 将一个可观察数组投影到另一个数组?
- r - 如何结合条形图和点图与 ggplot2 同时进行数据可视化?
- c# - HttpClient.PostAsync 的字符编码问题
- python - Mako NameError,不评估循环