rho*_*nda 5 amazon-s3 amazon-web-services amazon-redshift
我的 AWS 有 2 个不同的用户:admin
,s3_readonly
我是主要管理员,在 Redshift(cluster1) 中有 1 个集群。\n现在我正在尝试安排一个查询,每小时只调用这些过程(CALL <procedure_name>)
对于此任务,我遵循了 AWS 的官方文档(在 Amazon Redshift 控制台上安排查询 - Amazon Redshift),确切地说是本文档步骤(在 Amazon Redshift 数据仓库上安排 SQL 查询 | AWS 大数据博客)。
\n因此,我创建了新的 IAM 角色RedshiftScheduler
,该角色具有Redshift Customizable
选项并已附加AmazonRedshiftDataFullAccess
到它。然后我编辑了信任关系并添加了:
{\n "Version": "2012-10-17",\n "Statement": [\n {\n "Effect": "Allow",\n "Principal": {\n "Service": "redshift.amazonaws.com"\n },\n "Action": "sts:AssumeRole"\n },\n {\n "Sid": "S2",\n "Effect": "Allow",\n "Principal": {\n "AWS": "arn:aws:iam::<ACCOUNT_ID>:user/admin"\n },\n "Action": "sts:AssumeRole"\n },\n {\n "Sid": "S1",\n "Effect": "Allow",\n "Principal": {\n "Service": "events.amazonaws.com"\n },\n "Action": "sts:AssumeRole"\n }\n ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n然后,我返回到我的 AWS 用户(管理员)并附加了授予角色权限的新策略:
\n{\n "Version": "2012-10-17",\n "Statement": [\n {\n "Sid": "S3",\n "Effect": "Allow",\n "Action": "sts:AssumeRole",\n "Resource": "arn:aws:iam::<ACCOUNT_ID>:role/RedshiftScheduler"\n }\n ]\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n现在,我通过AWS服务登录到Redshift集群。使用临时凭据连接cluster1
并使用dbuser
。但是,当我尝试安排查询时,它会抛出错误
\n\n要查看此计划的计划历史记录,请将 IAM 角色 arn:aws:iam::<ACCOUNT_ID>:role/RedshiftScheduler 的 sts:AssumeRole 添加到您的 IAM 角色。您还需要将 IAM 用户 ARN 添加到角色\xe2\x80\x99s 信任策略中。
\n
小智 1
您需要将 IAM 用户 ARN 添加到角色\xe2\x80\x99s 信任策略中,如下所示
\n{\n "Effect": "Allow",\n "Principal": {\n "AWS": "arn:aws:iam::<account #>:user/<admin username"\n },\n "Action": "sts:AssumeRole",\n "Condition": {}\n}\n
Run Code Online (Sandbox Code Playgroud)\n后
\n{\n "Sid": "S1",\n "Effect": "Allow",\n "Principal": {\n "Service": "events.amazonaws.com"\n },\n "Action": "sts:AssumeRole"\n}\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3892 次 |
最近记录: |