AWS cli/boto3- 是否可能知道一个角色或策略是否对一个资源拥有权限?
创始人
2024-11-14 15:01:38
0

在AWS CLI和boto3中,可以使用aws iam simulate-principal-policy命令和boto3库中的iam.SimulatePrincipalPolicy()方法来检查角色或策略是否对特定资源拥有权限。

AWS CLI示例:

aws iam simulate-principal-policy --policy-source-arn  --action-names  --resource-arns 
  • :策略的ARN(Amazon Resource Name)。
  • :以逗号分隔的要检查的操作名称列表。
  • :以逗号分隔的要检查的资源ARN列表。

如果命令的输出中包含"allowed": true,则表示该角色或策略对该资源拥有权限。

boto3示例:

import boto3

def check_permission(policy_arn, actions, resources):
    client = boto3.client('iam')
    
    response = client.simulate_principal_policy(
        PolicySourceArn=policy_arn,
        ActionNames=actions,
        ResourceArns=resources
    )
    
    for result in response['EvaluationResults']:
        if result['EvalDecision'] == 'allowed':
            print(f"Allowed: {result['EvalActionName']} on {result['EvalResourceName']}")
        else:
            print(f"Not allowed: {result['EvalActionName']} on {result['EvalResourceName']}")

# 调用示例
policy_arn = 'arn:aws:iam::123456789012:policy/ExamplePolicy'
actions = ['s3:GetObject', 's3:PutObject']
resources = ['arn:aws:s3:::example-bucket/example-file.txt']

check_permission(policy_arn, actions, resources)

以上示例中,policy_arn是要检查的策略的ARN,actions是要检查的操作名称列表,resources是要检查的资源ARN列表。check_permission函数将遍历模拟结果并打印出每个操作和资源的权限情况。

请根据实际情况替换示例中的策略ARN、操作名称和资源ARN。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...