gpt4 book ai didi

amazon-web-services - 访问被拒绝 : Not authorized to perform rds:DescribeDBInstances

转载 作者:行者123 更新时间:2023-12-03 17:05:03 24 4
gpt4 key购买 nike

我想以编程方式列出我的 RDS 数据库实例和集群快照,因此我将以下 IAM 策略直接附加到我的一位用户:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadProdSnapshotsAndInstances",
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances",
"rds:DescribeDBClusterSnapshots"
],
"Resource": "*"
}
]
}

但是当我以该用户身份执行以下操作时(使用 AWS Node.js SDK)...
rds.describeDBInstances({}, (error, data) => {
...
});

...我收到以下错误:
AccessDenied: User: arn:aws:iam::<accountId>:user/<userName> is not authorized to perform: rds:DescribeDBInstances

知道我做错了什么吗?这似乎应该如此简单。

最佳答案

您显示 RDS 实例和集群快照的策略是正确的。发布您的整个代码,以便我们了解问题所在。还要仔细检查您对凭据的使用。

注意:我没有仅测试 Aurora RDS SQL Server。

我通过 IAM 策略模拟器运行了您的策略。 DescribeDBInstancesDescribeDBClusterSnapshots通过而其他命令失败。

我创建了一个新用户“testusers3”。我已将您的政策附加到该用户。

我下载了这个新用户的凭证并使用 AWS CLI 创建了配置文件“testusers3”。

AWS CLI 命令 aws --profile testusers3 rds describe-db-instances工作正常。其他命令如 aws --profile testusers3 rds stop-db-instance --db-instance-identifier XXX正确失败。

然后我写了下面的Python程序来测试。这个程序可以正确显示我们的RDS实例。

import boto3
session = boto3.Session(profile_name='testusers3')
client = session.client('rds')
r = client.describe_db_instances();
for i in r['DBInstances']:
print(i['DBInstanceIdentifier'], i['DBInstanceClass'], i['Endpoint']['Address'])

关于amazon-web-services - 访问被拒绝 : Not authorized to perform rds:DescribeDBInstances,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48411008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com