【发布时间】:2020-11-27 01:37:28
【问题描述】:
我有错误
"errorMessage": "调用 DescribeClusters 操作时发生错误 (AccessDenied):用户:arn:aws:sts::XX:assumed-role/xx/axx 无权执行:redshift:DescribeClusters on resource: arn:aws:xx:*",
下面是RDS的代码
client = boto3.client('rds')
cluster_list = client.describe_db_cluster_endpoints()
print(cluster_list)
下面是redshift的代码
client = boto3.client('redshift', 'us-east-2')
cluster_list = client.describe_clusters()
print(cluster_list)
我的角色有以下服务如下
AWSTemplateFormatVersion: 2010-09-09
Parameters:
testlambdarole:
Type: String
Default: role-name
Resources:
Role:
Type: AWS::IAM::Role
Properties:
RoleName: !Ref testlambdarole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
- redshift.amazonaws.com
Action: ['sts:AssumeRole']
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AWSLambdaExecute
Policies:
- PolicyName: RdsAccess
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Action:
- rds-db:connect
Resource: "*"
【问题讨论】:
-
您的 IAM 角色无权执行该操作,如错误所示。
-
你可以看到 - redshift.amazonaws.com 存在
-
Redshift 被称为服务主体,请阅读 IAM 文档。
-
你的意思是说我还需要添加策略?
-
检查我的答案
标签: python amazon-web-services aws-lambda yaml