amazon-web-services - 将 iam 用户映射到角色后权限被拒绝
问题描述
有人可以帮我解决权限被拒绝的问题。让我知道是否有任何遗漏或错误。
使用以下策略custom-iams-orchestration-role
为服务创建了新角色Elastic Container Service Task
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}
并通过在角色中添加以下策略来信任具有相同帐户的用户
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com",
"AWS": "arn:aws:iam::accountid:user/iams-dev-user"
},
"Action": "sts:AssumeRole"
}
]
}
并且对于iams-dev-user
在策略下添加的用户承担角色
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::accountid:role/custom-iams-orchestration-role"
}
]
}
但是在使用用户密钥aws sns publish --topic-arn arn:aws:sns:us-east-1:accountid:SISMANAGER-DEV-TOPIC --message testingForIamsDevUser --profile iams-dev-user --region=us-east-1
从我的笔记本电脑执行时遇到问题iams-user-dev
User:arn:aws:iam::accountid:user/iams-dev-user is not authorized to perform
解决方案
您实际上需要承担它不会自动发生的角色。这将为您提供访问密钥、秘密和会话令牌,然后与其他命令一起使用。如果您不想承担角色,则需要直接为用户分配策略。
例子
使用 aws cli 承担相关角色
aws sts assume-role --role-arn arn:aws:iam::accountid:role/custom-iams-orchestration-role --role-session-name orchestration-access-example --profile iams-dev-users
这将为您提供包含新Access Key、Secret和Session Token的输出:
"Credentials": {
"SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
"SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
"Expiration": "2016-03-15T00:05:07Z",
"AccessKeyId": "ASIAJEXAMPLEXEG2JICEA"
}
在您的凭证文件中使用这些值:
[assumed-role]
aws_access_key_id = ASIAJEXAMPLEXEG2JICEA
aws_secret_access_key = 9drTJvcXLB89EXAMPLELB8923FB892xMFI
aws_session_token = AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=
使用此临时配置文件执行所需的命令,如下所示:
aws sns publish --topic-arn arn:aws:sns:us-east-1:accountid:SISMANAGER-DEV-TOPIC --message testingForIamsDevUser --profile assumed-role --region=us-east-1
推荐阅读
- spring-boot - 登录时 JHipster 未收到来自 Keycloak 用户的角色
- android - Android Studio 3.3 设计未显示
- excel - 如何修复在 Excel 2010 中有效的 Excel 2016 对象所需错误
- django - 权限被拒绝:'/code/celerybeat.pid'
- algorithm - 找到从 A 到 B 的路径长度 ≈ L
- javascript - req.body 未定义或为空
- scylla - 为什么键前缀优化不适用于集群列上的二级索引?
- node.js - Messenger Bot 通用模板按钮和字幕未显示在 android 应用程序中
- handsontable - 如何从可动手做的构建中排除热公式解析器?
- angular - Angular PrimeNg (p-table) 嵌套表 - 反应驱动的表单验证