如何检查IAM访问密钥是否具有特定权限?

Mik*_*ail 6 python boto amazon-web-services

是否可以检查特定的AWS IAM密钥是否具有一组特定命令的权限?

本质上,是否有适用于AWS 隐私模拟器的API ?

到目前为止,我一直在使用技巧,例如执行带有错误参数的命令以利用相关权限,并观察我得到了什么响应。

例:

# needed resource: 'elasticloadbalancer:SetLoadBalancerListenerSSLCertificate'

# Check:
try:
    elb.set_listener_SSL_certificate(443, 'fake')
except BotoServerError as e:
    if e.error_code == 'AccessDenied':
        print ("You don't have access to "
               "elasticloadbalancer:SetLoadBalancerListenerSSLCertificate")
Run Code Online (Sandbox Code Playgroud)

这显然是hacky。理想情况下,我会进行一些类似的函数调用iam.check_against(resource)。有什么建议么?

Joh*_*ein 1

IAM 策略模拟器提供了出色的 UI,用于确定哪些用户有权访问特定 API 调用。

如果您希望以编程方式对此进行测试,请使用该DryRun参数进行 API 调用。该函数不会实际执行,但会通知您它是否有足够的权限来执行。然而,它不会检查调用本身是否成功(例如,证书名称不正确)。