【发布时间】:2019-05-23 05:57:11
【问题描述】:
我创建了一个 AWS 角色并附加了一个将对象放入 S3 存储桶的策略。
我有一个使用该角色的本地 Python 应用程序。我的个人 AWS 用户有权担任角色。这是我使用的一些代码:
assumed_role_object = sts_client.assume_role(
RoleArn="arn:aws:iam::account-id:role/test-role",
RoleSessionName="myRoleSession"
)
这一切正常,但现在我的问题是我必须如何在我的本地服务器上配置它,而我没有配置我的个人用户来承担该角色。
我正在考虑创建一个 IAM 用户,该用户仅具有 assumeRole 权限,并使用该用户为我的应用程序代入一个角色。
我使用test-role-trust-policy.json
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::123456789012:root" },
"Action": "sts:AssumeRole"
}
}
并用这个创建角色:
aws iam create-role --role-name test-role --assume-role-policy-document file://test-role-trust-policy.json
将必要的策略附加到我的角色(放置 S3 对象)并在我的应用程序中使用该角色。
这是为本地服务器配置角色的正确方法吗?我觉得创建一个用户来使用我的本地服务器上的角色很奇怪(尽管现在用户的权限受到限制)。
我也不太清楚是否必须使用 root 作为主体或我的用户?
【问题讨论】: