- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 bash 脚本,它从 CloudFormation 堆栈中提取信息并将其放入 Python 脚本中。 Python 脚本旨在连接到 Redshift 数据库、创建表,然后从从 S3 存储桶下载的文件导入数据。
第一部分有效:
endpoint=$(aws cloudformation describe-stacks --stack-name=BallotOnlineRS --region=us-west-2 \
--query 'Stacks[0].Outputs[?OutputKey==`RedshiftClusterEndpointAddress`].OutputValue' \
--output text)
role=$(aws cloudformation describe-stack-resources --stack-name=BallotOnlineRS --region=us-west-2 \
--logical-resource-id RawDataBucketAccessRole |grep 'PhysicalResourceId' |cut -d: -f2 |sed 's/^ //; s/,//; s/"//g')
sed -i "s/ENDPOINT/${endpoint}/; s/ROLE/${role}/" /tmp/ballotonline_data.py
这会导致必要的字符串到达它们需要的地方:
HOST = 'ballotonliners-redshiftcluster-xxxxxxxxxxxx.cgsdneukfjtv.us-west-2.redshift.amazonaws.com'
ARN_CREDENTIALS = 'arn:aws:iam::xxxxxxxxxxx:role/BallotOnlineRS-RawDataBucketAccessRole-xxxxxxxxxxxx
但是,当我执行 Python 脚本时,我从 sqlalchemy
收到以下错误:
sqlalchemy.exc.InternalError: (psycopg2.errors.InternalError_) User arn:aws:redshift:us-west-2:xxxxxxxxxxx:dbuser:ballotonliners-redshiftcluster-1qb2hxkta10t9/admin is not authorized to assume IAM Role arn:aws:iam::xxxxxxxxxxx:role/BallotOnlineRS-RawDataBucketAccessRole-1U56NHFY528VW
DETAIL:
-----------------------------------------------
error: User arn:aws:redshift:us-west-2:xxxxxxxxxxx:dbuser:ballotonliners-redshiftcluster-xxxxxxxxxxxx/admin is not authorized to assume IAM Role arn:aws:iam::xxxxxxxxxxx:role/BallotOnlineRS-RawDataBucketAccessRole-xxxxxxxxxxxx
code: 8001
context: IAM Role=arn:aws:iam::xxxxxxxxxxx:role/BallotOnlineRS-RawDataBucketAccessRole-xxxxxxxxxxxx
query: 76
location: xen_aws_credentials_mgr.cpp:272
process: padbmaster [pid=13823]
-----------------------------------------------
错误中提到的 admin
用户是在创建 Redshift 堆栈时创建的,如果我通过登录查询编辑器通过 Redshift UI 访问数据库,则使用同一帐户不会收到错误。这种情况的不同之处在于,我使用用户名:密码登录,而不是(我猜)假设角色。具体来说,就是错误中的那个。
Redshift 堆栈是使用模板 provided by Thorntech 构建的。执行时也是成功的。
对这个问题有什么想法吗?
编辑:我在 AWS Developer forum 上发现了应该是相同的问题这表明我不应该使用物理资源 ID,而应该使用逻辑 ID。在这种情况下,我应该使用 RawDataBucketAccessRole
,而不是 BallotOnlineRS-RawDataBucketAccessRole-xxxxxxxxxxxx
。但是,这会导致相同的错误,区别在于逻辑 ID 替换了物理 ID。
编辑2:为了回答 John Rotenstein 关于关联角色的问题,以下是定义集群及其相关组件的部分:
Resources:
RedshiftCluster:
Type: AWS::Redshift::Cluster
Properties:
ClusterSubnetGroupName: !Ref RedshiftClusterSubnetGroup
ClusterType: !If [ SingleNode, single-node, multi-node ]
NumberOfNodes: !If [ SingleNode, !Ref 'AWS::NoValue', !Ref RedshiftNodeCount ] #'
DBName: !Sub ${DatabaseName}
IamRoles:
- !GetAtt RawDataBucketAccessRole.Arn
MasterUserPassword: !Ref MasterUserPassword
MasterUsername: !Ref MasterUsername
PubliclyAccessible: true
NodeType: dc2.large
Port: 5439
VpcSecurityGroupIds:
- !Sub ${RedshiftSecurityGroup}
PreferredMaintenanceWindow: Sun:09:15-Sun:09:45
DataBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub ${DataBucketName}
RawDataBucketAccessRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: Allow
Principal:
Service:
- redshift.amazonaws.com
Action:
- sts:AssumeRole
RawDataBucketRolePolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: RawDataBucketRolePolicy
PolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: Allow
Action: s3:ListAllMyBuckets
Resource: arn:aws:s3:::*
-
Effect: Allow
Action:
- 's3:Get*'
- 's3:List*'
Resource: '*'
-
Effect: Allow
Action: cloudwatch:*
Resource: "*"
Roles:
- !Ref RawDataBucketAccessRole
集群在角色之前定义重要吗?我怀疑它不会,因为该角色列在 CF UI 中堆栈的“资源”选项卡下。
编辑3:我找到了另一个,similar issue但对于一个产品来说。 OP 表示他找到了解决方案。因为他使用了错误的角色进行身份验证。当我研究解决我的问题的途径时,它似乎并不适用,因为我只有一个角色。
最佳答案
我已经到了把东西扔到墙上看看什么会粘住的地步。最终我让它发挥作用。我不知道的是,我一次所做的最后两项更改中的哪一项解决了问题(或原因):将 Path:
属性添加到 IAM::Role
定义或将策略与角色定义内联并删除外部策略定义。我最终得到的是(将其与我在上面问题正文中放置的内容进行比较)
RawDataBucketAccessRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: Allow
Principal:
Service:
- 'redshift.amazonaws.com'
Action:
- 'sts:AssumeRole'
Path: '/'
RoleName: RawDataBucketAccessRole
Policies:
-
PolicyName: RawDataBucketRolePolicy
PolicyDocument:
Version: 2012-10-17
Statement:
-
Effect: Allow
Action:
- 's3:Get*'
- 's3:List*'
Resource: '*'
这允许admin
用户(在MasterUsername
参数中定义)承担该角色并访问S3存储桶。
关于python - 用户无权担任 IAM 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55778161/
抱歉,问题标题含糊不清!我有一个 ASP.NET 应用程序,可与其他第三方软件配合使用(Burning Glass - 通过 tcp/ip 连接到 Web 应用程序,需要 - 正确配置的 dns 条目
我正在开展一个项目,将一个大型网站分解为更小、更具体的网站。我需要能够将对这些网站的访问限制为仅具有必要权限的用户,并且希望尽可能利用现有的成员资格/角色数据模型。 因此,理想情况下,我想将潜在的多个
抱歉,问题标题含糊不清!我有一个 ASP.NET 应用程序,可与其他第三方软件配合使用(Burning Glass - 通过 tcp/ip 连接到 Web 应用程序,需要 - 正确配置的 dns 条目
我对 FOSUserBundle 中的角色有点困惑。用户实体也有角色列,我们可以通过它为用户分配多个角色。根据发布在 Managing users/roles/groups in FOSUserBun
原谅我的新手问题,但我想按顺序执行三个任务并在剧本中使用两个角色: 任务 角色 任务 角色 任务 这是我到目前为止(任务,角色,任务): --- - name: Task Role Task ho
在触发器中,我想检查哪些角色对 USER() 有效,而不是 CURRENT_USER()。(认识到 CURRENT_USER() 返回触发器的 DEFINER)。 是否有任何类型的 USER_ROLE
我有一套Ansible playbooks 和主要的 yml 文件是这样的 - hosts: all roles: - common - install_nginx 我想在触发剧本
因此,我有以下代码输出安装的所有功能和角色: Import-Module ServerManager $Arr = Get-WindowsFeature | Where-Object {$_.Inst
我已经寻找了一段时间,并且已经手动完成了角色和权限的许多部署,但是有什么方法可以在Sitecore中为角色/权限创建一个程序包(或等效程序包)? 当您没有选择从一个环境到另一个环境进行完全部署时,使用
我想找到或创建一个与所有者或至少贡献者具有相同功能的 azure 角色。但此角色不应该有权创建 azure 资源。 我一直在浏览现有的预定义角色。 最佳答案 这在 Azure RBAC 上下文中没有任
我在文档中找不到答案,也找不到示例:是否可以在 role/defaults/ 中命名除 main.yml 之外的文件?我的意思是,main.yml 是具有默认值的文件的唯一有效名称吗? 最佳答案 根据
我尝试了kubectl get sa default命令,但只看到一些非常基本的值。在k8s中查看与特定服务帐户关联的权限/角色的命令是什么? 最佳答案 以下命令可能会有所帮助。它基本上获得RoleB
有没有办法告诉 Spring 在我制作的自定义用户 bean 中找到用户的角色? http://static.springsource.org/sprin...ns-config.html 因此,如果
在我的 playbook 中运行几次 Play 后,我想验证我的应用程序的部署。 在我的角色之一中,我有以下任务,将创建的 ec2 实例添加到“已启动”的主机: - name: Add new ins
我按如下方式将用户添加到角色(请注意,我在我的机器上运行下面显示的代码): Roles.AddUserToRole(oMU.UserName, "Role1"); 使用以下代码我检查用户是否在
我目前在为 postgresql 创建角色时遇到问题,这是我已经做过的,但自昨晚以来取得了任何进展 simplybel@simplybel:~$ sudo -u postgres createuser
一个项目现在有超过 200 个类,每个文件一个类,将它们划分到目录中似乎是恰当的。现在我正在考虑两种不同的策略; a) 按角色或层分组 repositories/ UserRepository
您如何为用户、角色和应用特定实体提供种子?似乎 IdentityModel 以它自己的上下文为目标? internal sealed class Configuration : DbMigration
摩尔庄园手游在六一儿童节上线之后,网上的争议声还是很多的,有夸赞的,称其找回了童年的回忆,也有吐槽的,觉得3d的设计很晕,没有以前的感觉,想要删除账号,那么大家知道怎么去注销吗,步骤流程是什么样的?
在 XP SP2 虚拟机中运行 Oracle 11gR1。完全披露:这是一项任务。 我试图在用户被授予 DBA 角色时进行审计,并在事件发生时发送电子邮件。 我相信命令 AUDIT DBA;将审核对
我是一名优秀的程序员,十分优秀!