AWS SDK 또는 CLI로 ListUsers 사용하기

AWS SDK 또는 CLI로 ListUsers 사용하기

다음 코드 예시는 ListUsers을(를) 사용하는 방법을 보여줘요.

액션 예시는 더 큰 프로그램에서 발췌한 코드 조각이라, 실제 프로그램 컨텍스트 안에서 실행돼야 해요.

출처: 문서

본문

SDK for .NET

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

    /// <summary>
    /// List IAM users.
    /// </summary>
    /// <returns>A list of IAM users.</returns>
    public async Task<List<User>> ListUsersAsync()

{

        var listUsersPaginator = _IAMService.Paginators.ListUsers(new ListUsersRequest());
        var users = new List<User>();

        await foreach (var response in listUsersPaginator.Responses)

{

            users.AddRange(response.Users);
        }

        return users;
    }

API 상세 내용은 AWS SDK for .NET API Reference의 ListUsers 문서를 참고하세요.

AWS CLI with Bash script

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

###############################################################################
# function errecho
#
# This function outputs everything sent to it to STDERR (standard error output).
###############################################################################
function errecho()
{

  printf "%s\n" "$*" 1>&2
}

###############################################################################
# function iam_list_users
#
# List the IAM users in the account.
#
# Returns:
#       The list of users names
#    And:
#       0 - If the user already exists.
#       1 - If the user doesn't exist.
###############################################################################
function iam_list_users()
{

  local option OPTARG # Required to use getopts command in a function.
  local error_code
  # bashsupport disable=BP5008
  function usage()
{

    echo "function iam_list_users"
    echo "Lists the AWS Identity and Access Management (IAM) user in the account."
    echo ""
  }

  # Retrieve the calling parameters.
  while getopts "h" option; do
    case "$
{
option}" in
      h)
        usage
        return 0
        ;;
      \?)
        echo "Invalid parameter"
        usage
        return 1
        ;;
    esac
  done
  export OPTIND=1

  local response

  response=$(aws iam list-users \
    --output text \
    --query "Users[].UserName")
  error_code=$
{
?}

  if [[ $error_code -ne 0 ]]; then
    aws_cli_error_log $error_code
    errecho "ERROR: AWS reports list-users operation failed.$response"
    return 1
  fi

  echo "$response"

  return 0
}

API 상세 내용은 AWS CLI Command Reference의 ListUsers 문서를 참고하세요.

SDK for C++

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

bool AwsDoc::IAM::listUsers(const Aws::Client::ClientConfiguration &clientConfig)
{

    const Aws::String DATE_FORMAT = "%Y-%m-%d";
    Aws::IAM::IAMClient iam(clientConfig);
    Aws::IAM::Model::ListUsersRequest request;

    bool done = false;
    bool header = false;
    while (!done)
{

        auto outcome = iam.ListUsers(request);
        if (!outcome.IsSuccess())
{

            std::cerr << "Failed to list iam users:" <<
                      outcome.GetError().GetMessage() << std::endl;
            return false;
        }

        if (!header)
{

            std::cout << std::left << std::setw(32) << "Name" <<
                      std::setw(30) << "ID" << std::setw(64) << "Arn" <<
                      std::setw(20) << "CreateDate" << std::endl;
            header = true;
        }

        const auto &users = outcome.GetResult().GetUsers();
        for (const auto &user: users)
{

            std::cout << std::left << std::setw(32) << user.GetUserName() <<
                      std::setw(30) << user.GetUserId() << std::setw(64) <<
                      user.GetArn() << std::setw(20) <<
                      user.GetCreateDate().ToGmtString(DATE_FORMAT.c_str())
                      << std::endl;
        }

        if (outcome.GetResult().GetIsTruncated())
{

            request.SetMarker(outcome.GetResult().GetMarker());
        }
        else
{

            done = true;
        }
    }

    return true;
}

API 상세 내용은 AWS SDK for C++ API Reference의 ListUsers 문서를 참고하세요.

AWS CLI

IAM 사용자를 나열하려면

다음 list-users 명령은 현재 계정의 IAM 사용자를 나열해요.

aws iam list-users

출력:

{

    "Users": [

{

            "UserName": "Adele",
            "Path": "/",
            "CreateDate": "2013-03-07T05:14:48Z",
            "UserId": "AKIAI44QH8DHBEXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/Adele"
        },

{

            "UserName": "Bob",
            "Path": "/",
            "CreateDate": "2012-09-21T23:03:13Z",
            "UserId": "AKIAIOSFODNN7EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/Bob"
        }
    ]
}

더 자세한 내용은 AWS IAM 사용자 가이드의 'IAM 사용자 나열' 문서를 참고하세요.

API 상세 내용은 AWS CLI Command Reference의 ListUsers 문서를 참고하세요.

SDK for Go V2

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

import (
	"context"
	"encoding/json"
	"errors"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/iam"
	"github.com/aws/aws-sdk-go-v2/service/iam/types"
	"github.com/aws/smithy-go"
)

// UserWrapper encapsulates user actions used in the examples.
// It contains an IAM service client that is used to perform user actions.
type UserWrapper struct
{

	IamClient *iam.Client
}



// ListUsers gets up to maxUsers number of users.
func (wrapper UserWrapper) ListUsers(ctx context.Context, maxUsers int32) ([]types.User, error)
{

	var users []types.User
	result, err := wrapper.IamClient.ListUsers(ctx, &iam.ListUsersInput
{

		MaxItems: aws.Int32(maxUsers),
	})
	if err != nil
{

		log.Printf("Couldn't list users. Here's why: %v\n", err)
	} else
{

		users = result.Users
	}
	return users, err
}

API 상세 내용은 AWS SDK for Go API Reference의 ListUsers 문서를 참고하세요.

SDK for Java 2.x

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

import software.amazon.awssdk.services.iam.model.AttachedPermissionsBoundary;
import software.amazon.awssdk.services.iam.model.IamException;
import software.amazon.awssdk.services.iam.model.ListUsersRequest;
import software.amazon.awssdk.services.iam.model.ListUsersResponse;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.iam.IamClient;
import software.amazon.awssdk.services.iam.model.User;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class ListUsers
{

    public static void main(String[] args)
{

        Region region = Region.AWS_GLOBAL;
        IamClient iam = IamClient.builder()
                .region(region)
                .build();

        listAllUsers(iam);
        System.out.println("Done");
        iam.close();
    }

    public static void listAllUsers(IamClient iam)
{

        try
{

            boolean done = false;
            String newMarker = null;
            while (!done)
{

                ListUsersResponse response;
                if (newMarker == null)
{

                    ListUsersRequest request = ListUsersRequest.builder().build();
                    response = iam.listUsers(request);
                } else
{

                    ListUsersRequest request = ListUsersRequest.builder()
                            .marker(newMarker)
                            .build();

                    response = iam.listUsers(request);
                }

                for (User user : response.users())
{

                    System.out.format("\n Retrieved user %s", user.userName());
                    AttachedPermissionsBoundary permissionsBoundary = user.permissionsBoundary();
                    if (permissionsBoundary != null)
                        System.out.format("\n Permissions boundary details %s",
                                permissionsBoundary.permissionsBoundaryTypeAsString());
                }

                if (!response.isTruncated())
{

                    done = true;
                } else
{

                    newMarker = response.marker();
                }
            }

        } catch (IamException e)
{

            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}

API 상세 내용은 AWS SDK for Java 2.x API Reference의 ListUsers 문서를 참고하세요.

SDK for JavaScript (v3)

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

사용자를 나열해요.

import
{
 ListUsersCommand, IAMClient } from "@aws-sdk/client-iam";

const client = new IAMClient(
{
});

export const listUsers = async () =>
{

  const command = new ListUsersCommand(
{
 MaxItems: 10 });

  const response = await client.send(command);

  for (const
{
 UserName, CreateDate } of response.Users)
{

    console.log(`$
{
UserName} created on: $
{
CreateDate}`);
  }
  return response;
};

더 자세한 내용은 AWS SDK for JavaScript 개발자 가이드를 참고하세요.

API 상세 내용은 AWS SDK for JavaScript API Reference의 ListUsers 문서를 참고하세요.

SDK for JavaScript (v2)

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update(
{
 region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM(
{
 apiVersion: "2010-05-08" });

var params =
{

  MaxItems: 10,
};

iam.listUsers(params, function (err, data)
{

  if (err)
{

    console.log("Error", err);
  } else
{

    var users = data.Users || [];
    users.forEach(function (user)
{

      console.log("User " + user.UserName + " created", user.CreateDate);
    });
  }
});

더 자세한 내용은 AWS SDK for JavaScript 개발자 가이드를 참고하세요.

API 상세 내용은 AWS SDK for JavaScript API Reference의 ListUsers 문서를 참고하세요.

SDK for Kotlin

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

suspend fun listAllUsers()
{

    IamClient.fromEnvironment
{
 region = "AWS_GLOBAL" }.use
{
 iamClient ->
        val response = iamClient.listUsers(ListUsersRequest
{
 })
        response.users?.forEach
{
 user ->
            println("Retrieved user $
{
user.userName}")
            val permissionsBoundary = user.permissionsBoundary
            if (permissionsBoundary != null)
{

                println("Permissions boundary details $
{
permissionsBoundary.permissionsBoundaryType}")
            }
        }
    }
}

API 상세 내용은 AWS SDK for Kotlin API reference의 ListUsers 문서를 참고하세요.

SDK for PHP

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

$uuid = uniqid();
$service = new IAMService();

    public function listUsers($pathPrefix = "", $marker = "", $maxItems = 0)

{

        $listUsersArguments = [];
        if ($pathPrefix)
{

            $listUsersArguments["PathPrefix"] = $pathPrefix;
        }
        if ($marker)
{

            $listUsersArguments["Marker"] = $marker;
        }
        if ($maxItems)
{

            $listUsersArguments["MaxItems"] = $maxItems;
        }

        return $this->iamClient->listUsers($listUsersArguments);
    }

API 상세 내용은 AWS SDK for PHP API Reference의 ListUsers 문서를 참고하세요.

Tools for PowerShell V4

예시 1: 이 예시는 현재 AWS 계정의 사용자 모음을 조회해요.

Get-IAMUserList

출력:

      Arn              : arn:aws:iam::123456789012:user/Administrator
      CreateDate       : 10/16/2014 9:03:09 AM
      PasswordLastUsed : 3/4/2015 12:12:33 PM
      Path             : /
      UserId           : 7K3GJEANSKZF2EXAMPLE1
      UserName         : Administrator

      Arn              : arn:aws:iam::123456789012:user/Bob
      CreateDate       : 4/6/2015 12:54:42 PM
      PasswordLastUsed : 1/1/0001 12:00:00 AM
      Path             : /
      UserId           : L3EWNONDOM3YUEXAMPLE2
      UserName         : bab

      Arn              : arn:aws:iam::123456789012:user/David
      CreateDate       : 12/10/2014 3:39:27 PM
      PasswordLastUsed : 3/19/2015 8:44:04 AM
      Path             : /
      UserId           : Y4FKWQCXTA52QEXAMPLE3
      UserName         : David

API 상세 내용은 AWS Tools for PowerShell Cmdlet Reference (V4)의 ListUsers 문서를 참고하세요.

Tools for PowerShell V5

예시 1: 이 예시는 현재 AWS 계정의 사용자 모음을 조회해요.

Get-IAMUserList

출력:

      Arn              : arn:aws:iam::123456789012:user/Administrator
      CreateDate       : 10/16/2014 9:03:09 AM
      PasswordLastUsed : 3/4/2015 12:12:33 PM
      Path             : /
      UserId           : 7K3GJEANSKZF2EXAMPLE1
      UserName         : Administrator

      Arn              : arn:aws:iam::123456789012:user/Bob
      CreateDate       : 4/6/2015 12:54:42 PM
      PasswordLastUsed : 1/1/0001 12:00:00 AM
      Path             : /
      UserId           : L3EWNONDOM3YUEXAMPLE2
      UserName         : bab

      Arn              : arn:aws:iam::123456789012:user/David
      CreateDate       : 12/10/2014 3:39:27 PM
      PasswordLastUsed : 3/19/2015 8:44:04 AM
      Path             : /
      UserId           : Y4FKWQCXTA52QEXAMPLE3
      UserName         : David

API 상세 내용은 AWS Tools for PowerShell Cmdlet Reference (V5)의 ListUsers 문서를 참고하세요.

SDK for Python (Boto3)

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

def list_users():
    """
    Lists the users in the current account.

    :return: The list of users.
    """
    try:
        users = list(iam.users.all())
        logger.info("Got %s users.", len(users))
    except ClientError:
        logger.exception("Couldn't get users.")
        raise
    else:
        return users

API 상세 내용은 AWS SDK for Python (Boto3) API Reference의 ListUsers 문서를 참고하세요.

SDK for Ruby

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

  # Lists all users in the AWS account
  #
  # @return [Array<Aws::IAM::Types::User>] An array of user objects
  def list_users
    users = []
    @iam_client.list_users.each_page do |page|
      page.users.each do |user|
        users << user
      end
    end
    users
  rescue Aws::IAM::Errors::ServiceError => e
    @logger.error("Error listing users: #
{
e.message}")
    []
  end

API 상세 내용은 AWS SDK for Ruby API Reference의 ListUsers 문서를 참고하세요.

SDK for Rust

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

pub async fn list_users(
    client: &iamClient,
    path_prefix: Option<String>,
    marker: Option<String>,
    max_items: Option<i32>,
) -> Result<ListUsersOutput, SdkError<ListUsersError>>
{

    let response = client
        .list_users()
        .set_path_prefix(path_prefix)
        .set_marker(marker)
        .set_max_items(max_items)
        .send()
        .await?;
    Ok(response)
}

API 상세 내용은 AWS SDK for Rust API reference의 ListUsers 문서를 참고하세요.

SDK for SAP ABAP

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

    TRY.
        oo_result = lo_iam->listusers( ).
        MESSAGE 'Retrieved user list.' TYPE 'I'.
      CATCH /aws1/cx_iamservicefailureex.
        MESSAGE 'Service failure when listing users.' TYPE 'E'.
    ENDTRY.

API 상세 내용은 AWS SDK for SAP ABAP API reference의 ListUsers 문서를 참고하세요.

SDK for Swift

참고: GitHub에 더 많은 내용이 있어요. AWS Code Examples Repository에서 전체 예시를 찾아 실행·설정 방법을 배울 수 있어요.

import AWSIAM
import AWSS3


    public func listUsers() async throws -> [MyUserRecord]
{

        var userList: [MyUserRecord] = []

        // Use "Paginated" to get all the users.
        // This lets the SDK handle the 'isTruncated' in "ListUsersOutput".
        let input = ListUsersInput()
        let output = client.listUsersPaginated(input: input)

        do
{

            for try await page in output
{

                guard let users = page.users else
{

                    continue
                }
                for user in users
{

                    if let id = user.userId, let name = user.userName
{

                        userList.append(MyUserRecord(id: id, name: name))
                    }
                }
            }
        }
        catch
{

            print("ERROR: listUsers:", dump(error))
            throw error
        }
       return userList
    }

API 상세 내용은 AWS SDK for Swift API reference의 ListUsers 문서를 참고하세요.

더 알아보기 (Learn more)