首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AWS CLI列出用户及其权限?

如何使用AWS CLI列出用户及其权限?
EN

Stack Overflow用户
提问于 2020-03-22 21:09:22
回答 5查看 4.1K关注 0票数 5

我运行这个命令:aws iam list-users,我得到了一个用户列表,但是没有列出权限(如果某人是根用户,或者是s3fullaccess等等)。

我运行另一个命令:aws iam list-user-policies --user-name xxxxx,结果如下:

代码语言:javascript
复制
{
    "PolicyNames": []
}

我需要哪个命令或者什么命令组合才能显示所有用户以及他们各自的权限?谢谢。

EN

回答 5

Stack Overflow用户

发布于 2020-03-22 23:41:21

该命令仅列出用户的内联策略,您还需要获取附加到IAM用户的托管策略的列表。然后,您还需要获取用户所属的组的列表,并列出附加到每个组的内联策略和托管策略。

因此,在CLI中,您需要执行以下操作:

代码语言:javascript
复制
aws iam list-user-policies
aws iam list-attached-user-policies
aws iam list-groups-for-user

# For each group:
aws iam list-group-policies
aws iam list-attached-group-policies

我强烈推荐在Python和Boto3中这样做,而不是使用AWS CLI工具。

票数 11
EN

Stack Overflow用户

发布于 2021-10-26 18:41:25

受这篇文章的启发,我写这篇文章是为了在清除用户权限之前捕获它们,以防以后需要恢复它们:

代码语言:javascript
复制
function _getUserIamPermissions() {
    export AWS_PAGER="";
    local _user="${1}";
    
    local outputManagedPolicies="";
    local outputUserPolicies="";
    local outputManagedGroupPolicies="";
    local outputGroupPolicies="";

    # Managed Policies Attached to the IAM User
    local _managedpolicies=$(aws iam list-attached-user-policies --user-name "${_user}" | jq -r '.AttachedPolicies[].PolicyArn';);
    for policy in ${_managedpolicies}; do
        local versionId=$(aws iam get-policy --policy-arn "${policy}" | jq -r '.Policy.DefaultVersionId';);
        outputManagedPolicies=$(aws iam get-policy-version --policy-arn "${policy}" --version-id "${versionId}";);
        printf "%s" "${outputManagedPolicies}";
    done;

    # Inline Policies on the IAM User
    local _userpolicies=$(aws iam list-user-policies --user-name "${_user}" | jq -r '.PolicyNames[]';);
    for policy in ${_userpolicies}; do
        outputUserPolicies=$(aws iam get-user-policy --user-name "${_user}" --policy-name "${policy}";);
        printf "%s" "${outputUserPolicies}";
    done;

    # Get all of the IAM User's assigned IAM Groups
    local _groups=$(aws iam list-groups-for-user --user-name "${_user}" | jq -r '.Groups[].GroupName';);
    for group in ${_groups}; do
        # Managed Policies Attached to the IAM Group
        local _managedgrouppolicies=$(aws iam list-attached-group-policies --group-name "${group}" | jq -r '.AttachedPolicies[].PolicyArn';);
        for policy in ${_managedgrouppolicies}; do
            local versionId=$(aws iam get-policy --policy-arn "${policy}" | jq -r '.Policy.DefaultVersionId';);
            outputManagedGroupPolicies=$(aws iam get-policy-version --policy-arn "${policy}" --version-id "${versionId}" | jq --arg arn "${policy}" '{"PolicyArn": $arn, "Policy": .}';);
            printf "%s" "${outputManagedGroupPolicies}";
        done;

        # Inline Policies on the IAM Group
        local _grouppolicies=$(aws iam list-group-policies --group-name "${group}" | jq -r '.PolicyNames[]';);
        for policy in ${_grouppolicies}; do
            outputGroupPolicies=$(aws iam get-group-policy --group-name "${group}" --policy-name "${policy}";);
            printf "%s" "${outputGroupPolicies}";
        done;
    done;
}

function getUserIamPermissions() {
    local username="${1}";
    _getUserIamPermissions "${username}" | jq -s;
}

根据此处提供的信息更新:# https://www.badllama.com/content/using-aws-cli-check-user-permissions

用法:使用它的最快方式,以及我使用它的方式,都是通过亚马逊网络服务CloudShell。我打开CloudShell终端,将其粘贴进去,然后运行:

代码语言:javascript
复制
getUserIamPermissions <username>

输出是一个JSON数组,其中包含用户的所有内容:

  1. Managed Policies附加到IAM User
  2. Inline Policies on the IAM User
  3. Managed Policies附加到用户的IAM Groups
  4. Inline Policies on the user's IAM Groups
票数 4
EN

Stack Overflow用户

发布于 2021-09-15 16:23:16

首先,您将获得策略列表(正如@Mark-b在anser中提到的那样)

接下来,您将获得每个策略的版本:

aws iam list-policy-versions --policy-arn

对于具体的版本,查询PolicyDocument

aws iam get-policy-version --policy-arn arn:aws:iam::123456789012:policy/MyPolicy --version-id vX

您将获得带有IAM策略语句的JSON格式的PolicyDocument。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60799709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档