

# IAM 시작하기
<a name="getting-started"></a>

AWS Identity and Access Management(IAM)으로 Amazon Web Services(AWS) 및 계정의 리소스에 대한 액세스 권한을 안전하게 제어할 수 있습니다. IAM은 로그인 보안 인증 정보를 비공개로 유지할 수도 있습니다. 하지만 IAM을 사용하려고 따로 가입할 필요는 없습니다. IAM 사용에는 요금이 부과되지 않습니다.

IAM을 사용하여 사용자 및 역할과 같은 ID에 계정의 리소스에 대한 액세스 권한을 부여합니다. 예를 들어AWS 외부에서 관리하는 회사 디렉터리의 기존 사용자와 함께 IAM을 사용하거나 AWS IAM Identity Center를 사용하여 AWS에서 사용자를 생성할 수 있습니다. 페더레이션형 ID는 정의된 IAM 역할을 수임하여 필요한 리소스에 액세스합니다. IAM Identity Center에 대한 자세한 내용은 *AWS IAM Identity Center 사용 설명서*의 [ What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)(IAM Identity Center란 무엇인가요?) 섹션을 참조하세요.

**참고**  
IAM은 여러 AWS 제품에 통합됩니다. IAM 지원 서비스 목록은 [AWS IAM으로 작업하는 서비스](reference_aws-services-that-work-with-iam.md) 섹션을 참조하세요.

AWS를 시작하고, 관리 사용자와 AWS Organizations를 생성하고, 여러 서비스를 사용하여 프로젝트 구축 및 개시 등과 같은 문제를 해결하는 방법을 알아보려면 [시작하기 리소스 센터](https://aws.amazon.com/getting-started/) 섹션을 참조하세요.

# AWS 계정 설정
<a name="getting-started-account-iam"></a>

IAM 작업을 시작하기 전에 AWS 환경의 초기 설정을 완료했는지 확인하세요.

가입 프로세스가 완료되면 AWS은 사용자에게 확인 이메일을 전송합니다. 언제든지 [https://aws.amazon.com/](https://aws.amazon.com/)으로 이동하고 **내 계정**을 선택하여 현재 계정 활동을 확인하고 계정을 관리할 수 있습니다.

서비스에 등록할 때 이메일 주소와 암호를 사용하여 AWS 계정을 생성했습니다. 그 주소와 암호가 바로 AWS 루트 사용자 자격 증명입니다. 일상 작업을 위해 AWS에 액세스할 때 루트 사용자 자격 증명을 사용하지 않는 것이 가장 좋습니다. [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/root-user-tasks.html)을 수행할 때만 루트 사용자 자격 증명을 사용하세요. 또한 자격 증명을 다른 사람과 공유하지 마세요. 대신 디렉터리에 사람을 추가하고 AWS 계정 액세스 권한을 부여하세요.

**AWS 계정 루트 사용자 보안 유지**

1.  **루트 사용자**를 선택하고 AWS 계정 이메일 주소를 입력하여 [AWS Management Console](https://console.aws.amazon.com/)에 계정 소유자로 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

   루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS Sign-In사용 설명서*의 [루트 사용자로 로그인](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)을 참조하세요.

1. 루트 사용자의 다중 인증(MFA)을 활성화합니다.

   지침은 *IAM 사용 설명서*의 [AWS 계정루트 사용자용 가상 MFA 디바이스 활성화(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)를 참조하세요.

**빌링 콘솔에 대한 액세스 권한 부여**

IAM 사용자와 AWS 계정 내의 역할은 기본적으로 과금 정보 및 비용 관리 콘솔 페이지에 액세스할 수 없습니다. 이는 특정 청구 기능에 대한 액세스 권한을 부여하는 IAM 정책을 보유한 경우에도 마찬가지입니다. 액세스 권한을 부여하려면 AWS 계정 루트 사용자가 먼저 IAM 액세스를 활성화해야 합니다.
**참고**  
보안 모범 사례로 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)과의 ID 페더레이션을 통해 리소스에 대한 액세스를 제공하는 것이 좋습니다. AWS Organizations와 함께 IAM Identity Center를 활성화하면 과금 정보 및 비용 관리 콘솔이 기본적으로 조직 내 모든 AWS 계정에 통합 결제와 함께 활성화됩니다. 자세한 내용은 **과금 정보 및 비용 관리 사용 설명서에서 [AWS Organizations 통합 결제](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/consolidated-billing.html)를 참조하세요.

1. 루트 사용자 보안 인증(AWS 계정을 만들 때 사용한 이메일 주소 및 암호)을 사용하여 AWS Management Console에 로그인합니다.

1. 탐색 표시줄에서 계정 이름을 선택한 다음 [계정](https://console.aws.amazon.com/billing/home#/account)을 선택합니다.

1. **결제 정보에 대한 IAM 사용자 및 역할 액세스** 섹션이 나타날 때까지 페이지를 아래로 스크롤한 다음 **편집**을 선택합니다.

1. **IAM 액세스 활성화(Activate IAM Access)** 확인란을 선택하여 Billing and Cost Management 콘솔 페이지에 대한 액세스를 활성화합니다.

1. **업데이트**를 선택합니다.

    페이지에 **결제 정보에 대한 IAM 사용자/역할 액세스가 활성화됨** 메시지가 표시됩니다.
**중요**  
IAM 액세스 활성화만으로는 사용자 및 역할에 과금 정보 및 비용 관리 콘솔 페이지를 볼 권한이 부여되지 않습니다. 또한 결제 콘솔에 대한 액세스를 부여하려면 필요한 ID 기반 정책을 IAM 역할에 연결해야 합니다. 역할은 사용자가 필요할 때 수임할 수 있는 임시 자격 증명을 제공합니다.

1. AWS Management Console을 사용하여 결제 콘솔에 액세스하기 위해 수임할 수 있는 [역할을 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)합니다.

1. 역할의 **권한 추가** 페이지에서 AWS 계정의 결제 콘솔에 관한 세부 정보를 나열하고 볼 수 있는 권한을 추가합니다.

   AWS 관리형 정책 [Billing](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/managed-policies.html#security-iam-awsmanpol-Billing)은 사용자에게 과금 정보 및 비용 관리 콘솔을 보고 편집할 수 있는 권한을 부여합니다. 여기에는 계정 사용량 보기 권한, 예산 및 결제 방법 수정 권한이 포함됩니다. IAM 역할에 연결하여 계정의 결제 정보에 대한 액세스를 제어할 수 있는 추가 정책 예제는 **과금 정보 및 비용 관리 사용 설명서의 결제 [AWS Billing 정책 예제](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-example-policies.html)를 참조하세요.

# AWS 계정 ID 보기
<a name="console-account-id"></a>

콘솔에 로그인한 경우 다음 방법을 사용하여 AWS 계정의 계정 ID를 볼 수 있습니다.

## AWS 계정 ID 보기
<a name="console-account-id-section-1"></a>

------
#### [ Console ]

AWS 계정 ID는 AWS 계정 섹션의 IAM **대시보드**로 이동하면 표시됩니다. 오른쪽 상단의 탐색 모음에서도 계정 ID를 볼 수 있습니다. 사용자 이름을 선택하면 계정 ID가 사용자 이름 위에 표시됩니다.

![\[계정 ID가 강조 표시된 계정 정보 드롭다운 상자\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/find-account-id.png)


------
#### [ AWS CLI ]

다음 명령을 사용하여 사용자 ID, 계정 ID 및 사용자 ARN을 봅니다.
+ [aws sts get-caller-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html)

------
#### [ API ]

다음 API를 사용하여 사용자 ID, 계정 ID 및 사용자 ARN을 봅니다.
+ [GetCallerIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html) 

------

# AWS 계정 ID에 별칭 사용
<a name="console-account-alias"></a>

계정 ID는 계정을 고유하게 식별하는 12자리 숫자입니다. 기본적으로 계정의 IAM 사용자는 계정 ID가 포함된 웹 URL을 사용하여 로그인합니다. URL이 없는 경우 로그인할 때 AWS 로그인 페이지에서 계정 ID를 제공할 수 있습니다.

로그인 페이지 URL의 형식은 기본적으로 다음과 같습니다.

```
https://Your_Account_ID.signin.aws.amazon.com/console/
```

많은 사람들이 숫자보다 단어를 기억하기 쉽다고 생각하므로 계정 ID의 별칭을 만들면 IAM 사용자가 더 쉽게 로그인할 수 있습니다.

AWS 계정 ID의 AWS 계정 별칭을 만드는 경우 로그인 페이지 URL이 다음 예제와 같습니다.

```
https://Your_Account_Alias.signin.aws.amazon.com/console/
```

**계정 별칭 생성 시 고려 사항**
+ AWS 계정은 별칭을 하나만 가질 수 있습니다. AWS 계정의 새 별칭을 생성하면 새 별칭이 이전 별칭을 덮어쓰며 이전 별칭을 포함하는 URL이 작동하지 않습니다.
+ 계정 별칭은 숫자, 소문자 및 하이픈만 포함해야 합니다. AWS 계정 엔터티에 대한 자세한 내용은 [IAM 및 AWS STS 할당량](reference_iam-quotas.md) 섹션을 참조하세요.
+ 계정 별칭은 지정된 네트워크 *파티션* 내 모든 Amazon Web Services 제품에서 고유해야 합니다

  *파티션*은 AWS 리전의 그룹입니다. 각 AWS 계정은 하나의 파티션으로 범위가 지정됩니다.

  지원되는 파티션은 다음과 같습니다.
  + `aws` - AWS 리전
  + `aws-cn` - 중국 리전
  + `aws-us-gov` - AWS GovCloud (US) 리전

**참고**  
계정 별칭은 비밀이 아니며 공개 로그인 페이지 URL에 표시됩니다. 계정 별칭에 민감한 정보를 포함하지 마세요.  
AWS 계정 별칭을 만든 후에도 AWS 계정 ID를 포함하는 원래 URL은 활성 상태로 유지되며 사용할 수 있습니다.

# 계정 별칭 생성
<a name="account-alias-create"></a>

다음 단계를 수행하려면 적어도 다음과 같은 IAM 권한이 있어야 합니다.
+ `iam:ListAccountAliases`
+ `iam:CreateAccountAlias`

## AWS 계정 별칭 생성
<a name="console-account-alias-section-1"></a>

------
#### [ Console ]

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **대시보드**를 선택합니다.

1. **AWS 계정** 섹션의 **계정 별칭** 옆에 있는 **생성**을 선택합니다. 별칭이 이미 있는 경우 **편집(Edit)**을 선택합니다.

1. 대화 상자에서 별칭에 사용할 이름을 입력한 후 **변경사항 저장**을 선택합니다.

------
#### [ AWS CLI ]

다음 명령 실행:
+ `[aws iam create-account-alias](https://docs.aws.amazon.com/cli/latest/reference/iam/create-account-alias.html)`

------
#### [ API ]

AWS Management Console 로그인 페이지 URL의 별칭을 만들려면 다음 연산을 호출합니다.
+ `[CreateAccountAlias](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccountAlias.html)` 

------

# 계정 별칭 삭제
<a name="account-alias-delete"></a>

다음 단계를 수행하려면 적어도 다음과 같은 IAM 권한이 있어야 합니다.
+ `iam:ListAccountAliases`
+ `iam:DeleteAccountAlias`

## 계정 별칭 삭제
<a name="console-account-alias-section-2"></a>

------
#### [ Console ]

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **대시보드**를 선택합니다.

1. **AWS 계정** 섹션의 **계정 별칭** 옆에 있는 **삭제**를 선택합니다.

------
#### [ AWS CLI ]

AWS 계정 ID 별칭을 삭제하려면 다음 명령을 실행합니다.
+ `[aws iam delete-account-alias](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-account-alias.html)`

다음 명령을 실행하여 AWS 계정 ID 별칭을 표시를 시도하고 계정 별칭이 삭제되었는지 확인: 
+ `[aws iam list-account-aliases](https://docs.aws.amazon.com/cli/latest/reference/iam/list-account-aliases.html)`

------
#### [ API ]

AWS 계정 ID 별칭을 삭제하려면 다음 연산을 호출합니다.
+ `[DeleteAccountAlias](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccountAlias.html)` 

다음 작업을 호출하여 AWS 계정 ID 별칭을 표시를 시도하고 계정 별칭이 삭제되었는지 확인:
+ `[ListAccountAliases](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccountAliases.html)` 

------

**참고**  
계정 별칭을 삭제한 이후 계정의 유일한 로그인 URL은 계정 ID를 기반으로 합니다. 별칭 URL에 연결하려는 모든 시도는 실패하고 리디렉션되지 않습니다.

# AWS 계정에 대한 액세스 계획
<a name="gs-identities"></a>

AWS 설정 시 사용자가 AWS 계정과 리소스에 어떻게 액세스할지 계획하여 잘 설계되고 안전한 ID 관리 솔루션을 설정하세요.

**ID 원본**

IAM 모범 사례에 따르면 사용자 및 워크로드는 AWS 리소스에 액세스할 때 임시 자격 증명을 사용해야 합니다. IAM 역할을 사용하여 리소스에 액세스하는 ID에는 임시 자격 증명이 부여됩니다. IAM으로 페더레이션된 사용자와 IAM Identity Center의 사용자(IAM Identity Center 디렉터리에 페더레이션 또는 생성된 사용자) 모두 IAM 역할을 사용하여 리소스에 액세스합니다.

AWS 사용을 시작하기 전에 다음을 통해 ID 설정 방법을 계획:
+ AWS Organizations에서 IAM Identity Center를 활성화하고 IAM Identity Center의 사용자를 조직 디렉터리에 직접 추가합니다.

  IAM Identity Center 조직 디렉터리에 사용자를 직접 추가하는 방법을 알아보려면 [사용자 추가](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html)를 참조하세요.
+ 기존 외부 ID 제공업체와 IAM Identity Center 또는 IAM과 페더레이션합니다.

  외부 ID 제공업체를 IAM Identity Center 조직 디렉터리에 페더레이션하는 방법을 알아보려면 해당 [시작하기 자습서](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)를 사용하세요.

**액세스 관리**

사용자가 액세스할 AWS 리소스와 서비스를 식별하고 각 사용자, 그룹 또는 역할에 필요한 액세스 권한 및 정책을 정의합니다.
+ IAM Identity Center를 사용하는 경우 IAM ID 제공업체와 IAM 역할 및 권한 정책이 조직의 각 AWS 계정에 자동으로 생성됩니다. 이러한 역할 및 권한은 특정 애플리케이션 또는 AWS 계정에 사람이나 그룹을 할당할 때 지정하는 권한과 연계됩니다.

  자세한 내용은 [사용자 액세스 할당](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-assign-account-access-user.html) 및 [애플리케이션에 대한 Single Sign-On 액세스 설정](https://docs.aws.amazon.com/singlesignon/latest/userguide/set-up-single-sign-on-access-to-applications.html)을 참조하세요.
+ ID 제공업체를 AWS 계정의 IAM에 직접 페더레이션하는 경우 사용자가 수임할 역할과 두 개의 정책, 즉 역할을 수임할 수 있는 사람을 지정하는 트러스트 정책과 역할을 수임하는 사람에게 액세스가 허용 또는 거부되는 AWS 작업 및 리소스를 지정하는 권한 정책을 만들어야 합니다.

  자세한 내용은 [ID 공급자 및 AWS로의 페더레이션](id_roles_providers.md) 섹션을 참조하세요.

# IAM 사용자 사용 사례
<a name="gs-identities-iam-users"></a>

AWS 계정에서 생성한 IAM 사용자는 직접 관리하는 장기 자격 증명을 보유합니다.

AWS에서 액세스를 관리할 때는 일반적으로 IAM 사용자가 최선의 선택이 아닙니다. 대부분의 사용 사례에서 IAM 사용자에 의존하지 않아야 하는 몇 가지 중요한 이유가 있습니다.

먼저, IAM 사용자는 개별 계정용으로 설계되므로 조직의 규모가 커지더라도 규모 조정이 원활하지 않습니다. 다수의 IAM 사용자에 대한 권한 및 보안 관리가 순식간에 어려운 작업이 될 수 있습니다.

또한 IAM 사용자는 다른 AWS ID 관리 솔루션에서 제공하는 중앙 집중식 가시성 및 감사 기능이 부족합니다. 이로 인해 보안 및 규제 준수 유지가 더 까다로울 수 있습니다.

마지막으로 확장 가능한 ID 관리 접근 방식을 사용하면 다중 인증, 암호 정책, 역할 분리와 같은 보안 모범 사례를 훨씬 쉽게 구현할 수 있습니다.

IAM 사용자에 의존하는 대신 AWS Organizations가 포함된 IAM Identity Center 또는 외부 제공업체의 페더레이션 ID와 같은 보다 강력한 솔루션을 사용하는 것이 좋습니다. 이러한 옵션을 사용하면 AWS 환경의 확장에 따라 제어, 보안 및 운영 효율성 개선을 제공합니다.

결과적으로 [페더레이션 사용자가 지원하지 않는 사용 사례](https://docs.aws.amazon.com//IAM/latest/UserGuide/id.html#id_which-to-choose)에는 IAM 사용자만 사용하는 것이 좋습니다.

다음 목록은 AWS에서 IAM 사용자의 장기 보안 자격 증명이 필요한 특정 사용 사례를 보여줍니다. IAM을 사용하여 AWS 계정 내에서 이러한 IAM 사용자를 생성하고 IAM을 사용하여 해당 권한을 관리할 수 있습니다.
+ AWS 계정에 대한 비상 액세스
+ IAM 역할을 사용할 수 없는 워크로드
  + AWS CodeCommit 액세스
  + Amazon Keyspaces(Apache Cassandra용) 액세스
+ 타사 AWS 클라이언트
+ 사용자 계정에 AWS IAM Identity Center을 사용할 수 없으며 다른 ID 공급자가 없음



# 비상 액세스를 위한 IAM 사용자 생성
<a name="getting-started-emergency-iam-user"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가지고 있는 AWS 계정 내 ID입니다.

비상 액세스를 위한 IAM 사용자를 두는 것은 ID 제공업체에 액세스할 수 없는 경우에도 AWS 계정에 액세스할 수 있도록 IAM 사용자를 생성하는 것이 권장되는 이유 중 하나입니다.

**참고**  
보안 [모범 사례](best-practices.md)로 IAM 사용자를 생성하는 대신 ID 페더레이션을 통해 리소스에 대한 액세스를 제공하는 것이 좋습니다. IAM 사용자가 필요한 특정 상황에 대한 자세한 내용은 [IAM 사용자(역할이 아님)를 생성해야 하는 경우](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_which-to-choose)를 참조하세요.

## 비상 액세스를 위한 IAM 사용자 생성
<a name="getting-started-emergency-iam-user-section-1"></a>

**최소 권한**  
다음 단계를 수행하려면 적어도 다음과 같은 IAM 권한이 있어야 합니다.  
`access-analyzer:ValidatePolicy`
`iam:AddUserToGroup`
`iam:AttachGroupPolicy`
`iam:CreateGroup`
`iam:CreateLoginProfile`
`iam:CreateUser`
`iam:GetAccountPasswordPolicy`
`iam:GetLoginProfile`
`iam:GetUser`
`iam:ListAttachedGroupPolicies`
`iam:ListAttachedUserPolicies`
`iam:ListGroupPolicies`
`iam:ListGroups`
`iam:ListGroupsForUser`
`iam:ListPolicies`
`iam:ListUserPolicies`
`iam:ListUsers`

------
#### [ Console ]<a name="gs-proc-iam-user-user"></a>

1. *AWS 로그인 사용 설명서*의 [AWS에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 항목에 설명된 대로 사용자 유형에 맞는 로그인 절차를 따르세요.

1. **IAM 콘솔 홈** 페이지의 왼쪽 탐색 창에서 쿼리를 **IAM 검색** 텍스트 상자에 입력합니다.

1. 탐색 창에서 **사용자**와 **사용자 생성**을 차례로 선택합니다.
**참고**  
IAM Identity Center를 활성화한 경우 IAM Identity Center에서 사용자 액세스를 관리하는 것이 가장 좋다는 알림이 AWS Management Console에 표시됩니다. 이 절차에서 생성한 IAM 사용자는 ID 제공업체를 사용할 수 없는 경우에만 사용하도록 설계되었습니다.

1. **사용자 세부 정보 지정** 페이지의 **사용자 세부 정보** 아래에 있는 **사용자 이름**에 새 사용자의 이름을 입력합니다. 이것은 AWS에 로그인할 때 사용하는 이름입니다. 이 예에서는 **EmergencyAccess**를 입력합니다.
**참고**  
사용자 이름에는 최대 64개의 문자, 숫자 및 더하기(\$1), 등호(=), 쉼표(,), 마침표(.), 앳(@) 및 하이픈(-) 조합을 사용할 수 있습니다. 이름은 계정 내에서 고유해야 합니다. 대소문자는 구별하지 않습니다. 예를 들어 "TESTUSER"와 "testuser"라는 두 사용자를 만들 수는 없습니다. 사용자 이름이 정책에서 또는 ARN의 일부로 사용되는 경우 이름은 대소문자를 구분합니다. 콘솔에서 고객에게 사용자 이름이 표시되는 경우(예: 로그인 프로세스 중) 사용자 이름은 대소문자를 구분하지 않습니다.

1. **사용자에게 AWS Management Console 액세스 권한 제공- *선택 사항*** 옆의 확인란을 선택한 다음 **IAM 사용자를 생성하고 싶음**을 선택합니다.

1. **콘솔 암호**에서 **자동 생성된 암호(권장)**을 선택합니다.

1. **다음 로그인 시 사용자가 새 암호를 생성해야 함(권장)** 옆의 확인란을 선택 해제합니다. 이 IAM 사용자는 긴급 액세스용이므로 신뢰할 수 있는 관리자가 암호를 보관하고 필요할 때만 암호를 제공합니다.

1. **권한 설정** 페이지의 **권한 옵션**에서 **그룹에 사용자 추가**를 선택합니다. 그런 다음 **사용자 그룹**에서 **그룹 생성**을 선택합니다.

1. **사용자 그룹 생성** 페이지의 **사용자 그룹 이름**에 **EmergencyAccessGroup**을 입력합니다. 그런 다음 **권한 정책**에서 **AdministratorAccess**를 선택합니다.

1. **권한 설정** 페이지로 돌아가려면 **사용자 그룹 생성**을 선택합니다.

1. **사용자 그룹**에서 이전에 만든 **EmergencyAccessGroup** 이름을 선택합니다.

1. **다음**을 선택하여 **검토 및 생성** 페이지로 이동합니다.

1. **검토 및 생성** 페이지에서 새 사용자에 추가될 사용자 그룹 멤버십의 목록을 검토합니다. 계속 진행할 준비가 되었으면 **사용자 생성**을 선택합니다.

1. **암호 검색** 페이지에서 **.csv 파일 다운로드**를 선택하여 사용자 자격 증명 정보(연결 URL, 사용자 이름, 암호)가 포함된 .csv 파일을 저장합니다.

1. IAM에 로그인해야 하고 ID 제공업체에 액세스할 수 없는 경우 이 파일을 저장하여 사용하세요.

새 IAM 사용자가 **사용자** 목록에 표시됩니다. 사용자 세부 정보를 보려면 **사용자 이름** 링크를 선택합니다.

------
#### [ AWS CLI ]

1. **EmergencyAccess**라는 사용자를 생성합니다.
   + [aws iam create-user](https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html)

   ```
   aws iam create-user \
      --user-name EmergencyAccess
   ```

1. (선택 사항) 사용자에게 AWS Management Console에 대한 액세스 권한 부여. 이를 위해서는 암호가 필요합니다. IAM 사용자의 암호를 생성하기 위해 `--cli-input-json` 파라미터를 사용하여 암호가 포함된 JSON 파일을 전달할 수 있습니다. 사용자에게 [계정 로그인 페이지의 URL](id_users_sign-in.md)도 제공해야 합니다.
   +  [aws iam create-login-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/create-login-profile.html)

     ```
      
     aws iam create-login-profile \
        --generate-cli-skeleton > create-login-profile.json
     ```
   + 텍스트 편집기에서 `create-login-profile.json` 파일을 열고 암호 정책을 준수하는 암호를 입력한 다음 파일을 저장합니다. 예제: 

     ```
     {
      "UserName": "EmergencyAccess",
      "Password": "Ex@3dRA0djs",
      "PasswordResetRequired": false
     }
     ```
   + 다시 `aws iam create-login-profile` 명령을 사용하여 `--cli-input-json` 파라미터를 전달하고 JSON 파일을 지정합니다.

     ```
     aws iam create-login-profile \
        --cli-input-json file://create-login-profile.json
     ```
**참고**  
JSON 파일에 제공한 암호가 계정의 암호 정책을 위반하는 경우 `PassworPolicyViolation` 오류가 발생합니다. 이 경우 계정의 [암호 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html#default-policy-details)을 검토하고 요구 사항에 맞게 JSON 파일의 암호를 업데이트합니다.

1. **EmergencyAccessGroup**을 생성하고, AWS 관리형 정책 `AdministratorAccess`를 그룹에 연결하고, **EmergencyAccess** 사용자를 그룹에 추가합니다.
**참고**  
*AWS 관리형 정책*은 AWS에서 생성 및 관리하는 독립적인 정책입니다. 각 정책에는 정책 이름이 포함된 Amazon 리소스 이름(ARN)이 있습니다. 예를 들어 `arn:aws:iam::aws:policy/IAMReadOnlyAccess`는 AWS 관리형 정책입니다. ARN에 대한 자세한 내용은 [IAM ARN](reference_identifiers.md#identifiers-arns) 섹션을 참조하세요. AWS에 대한 AWS 서비스 관리형 정책의 목록은 [AWS 관리형 정책](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)을 참조하세요.
   + [aws iam create-group](https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html) 

     ```
     aws iam create-group \
        --group-name EmergencyAccessGroup
     ```
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)

     ```
     aws iam attach-group-policy \
        --policy-arn arn:aws:iam::aws:policy/AdministratorAccess \
        --group-name >EmergencyAccessGroup
     ```
   + [aws iam add-user-to-group](https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html) 

     ```
     aws iam add-user-to-group \
        --user-name EmergencyAccess \
        --group-name EmergencyAccessGroup
     ```
   + [aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html) 명령을 실행하여 **EmergencyAccessGroup** 및 구성원을 나열합니다.

     ```
     aws iam get-group \
        --group-name EmergencyAccessGroup
     ```

------

# IAM 역할을 사용할 수 없는 워크로드용 IAM 사용자 생성
<a name="getting-started-workloads"></a>

**중요**  
[모범 사례](best-practices.md#lock-away-credentials)로, 인간 사용자가 AWS에 액세스할 때 [임시 자격 증명](id_credentials_temp.md)을 사용하는 방법을 권장합니다.  
또는 [AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html)을 사용하여 관리자를 포함한 사용자 ID를 관리할 수 있습니다. IAM Identity Center를 사용하여 계정에 대한 액세스 권한 및 해당 계정 내 권한을 관리하는 것이 좋습니다. 외부 ID 공급자를 사용하는 경우 IAM Identity Center에서 사용자 ID에 대한 액세스 권한을 구성할 수도 있습니다.

프로그래밍 방식 액세스 및 장기 자격 증명이 있는 IAM 사용자가 필요한 사용 사례에서는 필요할 때 액세스 키를 업데이트하는 절차를 수립하는 것이 좋습니다. 자세한 내용은 [액세스 키 업데이트](id-credentials-access-keys-update.md) 섹션을 참조하세요.

일부 계정 및 서비스 관리 작업을 수행하려면 루트 사용자 자격 증명을 사용하여 로그인해야 합니다. 루트 사용자로 로그인해야 하는 작업을 보려면 [루트 사용자 보안 인증이 필요한 작업](id_root-user.md#root-user-tasks) 항목을 참조하세요.

## IAM 역할을 사용할 수 없는 워크로드용 IAM 사용자 생성
<a name="getting-started-workloads-section-1"></a>

**최소 권한**  
다음 단계를 수행하려면 적어도 다음과 같은 IAM 권한이 있어야 합니다.  
`iam:AddUserToGroup`
`iam:AttachGroupPolicy`
`iam:CreateAccessKey`
`iam:CreateGroup`
`iam:CreateServiceSpecificCredential`
`iam:CreateUser`
`iam:GetAccessKeyLastUsed`
`iam:GetAccountPasswordPolicy`
`iam:GetAccountSummary`
`iam:GetGroup`
`iam:GetLoginProfile`
`iam:GetPolicy`
`iam:GetRole`
`iam:GetUser`
`iam:ListAccessKeys`
`iam:ListAttachedGroupPolicies`
`iam:ListAttachedUserPolicies`
`iam:ListGroupPolicies`
`iam:ListGroups`
`iam:ListGroupsForUser`
`iam:ListInstanceProfilesForRole`
`iam:ListMFADevices`
`iam:ListPolicies`
`iam:ListRoles`
`iam:ListRoleTags`
`iam:ListSSHPublicKeys`
`iam:ListServiceSpecificCredentials`
`iam:ListSigningCertificates`
`iam:ListUserPolicies`
`iam:ListUserTags`
`iam:ListUsers`
`iam:UploadSSHPublicKey`
`iam:UploadSigningCertificate`

------
#### [ Console ]

1. *AWS 로그인 사용 설명서*의 [AWS에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 항목에 설명된 대로 사용자 유형에 맞는 로그인 절차를 따르세요.

1. **IAM 콘솔 홈** 페이지의 왼쪽 탐색 창에서 쿼리를 **IAM 검색** 텍스트 상자에 입력합니다.

1. 탐색 창에서 **사용자**를 선택한 다음, **사용자 생성**을 선택합니다.

1. **사용자 세부 정보 지정** 페이지에서 다음 작업을 수행합니다.

   1. **사용자 이름**에 ***WorkloadName***을 입력합니다. ***WorkloadName***을 계정을 사용할 워크로드의 이름으로 바꿉니다.

   1. **다음**을 선택합니다.

1. (선택 사항) **권한 설정** 페이지에서 다음을 수행합니다.

   1. **사용자를 그룹에 추가**를 선택합니다.

   1. **그룹 생성**을 선택합니다.

   1. **사용자 그룹 생성** 대화 상자에서 **사용자 그룹 이름**에 그룹 내 워크로드 사용을 나타내는 이름을 입력합니다. 이 예에서는 **Automation** 이름을 사용합니다.

   1. **권한 정책**에서 **PowerUserAccess** 관리형 정책의 확인란을 선택합니다.
**작은 정보**  
**권한 정책** 검색 상자에 *파워*를 입력하면 관리형 정책을 빠르게 찾을 수 있습니다.

   1. **사용자 그룹 만들기**를 선택합니다.

   1. IAM 그룹의 목록이 있는 페이지로 돌아가 새 사용자 그룹 옆의 확인란을 선택합니다. 목록에 새 사용자 그룹이 표시되지 않으면 **새로 고침(Refresh)**을 선택합니다.

   1. **다음**을 선택합니다.

1. (선택 사항) **태그** 섹션에서 태그를 키 값 페어로 연결하여 메타데이터를 사용자에게 추가합니다. 자세한 내용은 [AWS Identity and Access Management 리소스용 태그](id_tags.md) 섹션을 참조하세요.

1. 새 사용자에 대한 사용자 그룹 멤버십을 확인합니다. 계속 진행할 준비가 되었으면 **사용자 생성**을 선택합니다.

1. 사용자가 성공적으로 생성되었다는 상태 알림이 표시됩니다. 사용자 세부 정보 페이지로 이동하려면 **사용자 보기**를 선택합니다.

1. **보안 자격 증명** 탭을 선택합니다. 그런 다음 워크로드에 필요한 자격 증명을 생성합니다.
   + **액세스 키**-**액세스 키 생성**을 선택하여 사용자에 대한 액세스 키를 생성하고 다운로드합니다.
**중요**  
보안 액세스 키는 이 때만 확인 및 다운로드가 가능하기 때문에 사용자에게 AWS API를 사용하도록 하려면 이 정보를 제공해야 합니다. 사용자의 새 액세스 키 ID와 보안 액세스 키를 안전한 장소에 보관하세요. **이 단계 이후에는 보안 키에 다시 액세스할 수 없습니다.**
   + **AWS CodeCommit에 대한 SSH 퍼블릭 키**-**SSH 퍼블릭 키 업로드**를 선택하여 사용자가 SSH를 통해 CodeCommit 리포지토리와 통신할 수 있도록 SSH 퍼블릭 키를 업로드합니다.
   + **AWS CodeCommit에 대한 HTTPS Git 자격 증명**-**자격 증명 생성**을 선택하여 Git 리포지토리와 함께 사용할 고유한 사용자 자격 증명 세트를 생성합니다. 사용자 이름과 암호를.csv 파일에 저장하려면 **자격 증명 다운로드**를 선택합니다. 이 시점에만 해당 정보를 사용할 수 있습니다. 암호를 잊어버리거나 분실한 경우 재설정해야 합니다.
   + **Amazon Keyspaces(Apache Cassandra용) 자격 증명**-Amazon Keyspaces와 함께 사용할 서비스별 사용자 자격 증명을 생성하려면 **자격 증명 생성**을 선택합니다. 사용자 이름과 암호를 .csv 파일에 저장하려면 **자격 증명 다운로드**를 선택합니다. 이 시점에만 해당 정보를 사용할 수 있습니다. 암호를 잊어버리거나 분실한 경우 재설정해야 합니다.
**중요**  
서비스별 자격 증명은 특정 IAM 사용자와 연결되는 장기 자격 증명이며, 해당 자격 증명을 생성한 서비스에만 사용할 수 있습니다. 임시 자격 증명을 사용하여 모든 AWS 리소스에 액세스할 수 있는 IAM 역할 또는 페더레이션 ID 권한을 부여하려면 Amazon Keyspaces용 SigV4 인증 플러그인을 통한 AWS 인증을 사용합니다. 자세한 내용은 *Amazon Keyspaces(Apache Cassandra용) 개발자 안내서*의 [임시 자격 증명을 사용하여 IAM 역할 및 SigV4 플러그인을 통해 Amazon Keyspaces(Apache Cassandra용)에 연결](https://docs.aws.amazon.com/keyspaces/latest/devguide/access.credentials.html#temporary.credentials.IAM)을 참조하세요.
   + **X.509 서명 인증서**-안전한 SOAP 프로토콜 요청을 해야 하고 AWS Certificate Manager에서 지원되지 않는 리전에 있는 경우 **X.509 인증서 생성**을 선택합니다. ACM은 서버 인증서를 프로비저닝, 관리 및 배포하기 위한 기본 도구입니다. ACM 사용에 대한 자세한 내용은 [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)를 참조하세요.

프로그래밍 방식으로 액세스할 수 있는 사용자를 생성하고 **PowerUserAccess** 작업 기능을 사용하여 구성했습니다. 이 사용자 권한 정책은 IAM 및 AWS Organizations를 제외한 모든 서비스에 대한 전체 액세스 권한을 부여합니다.

워크로드가 IAM 역할을 맡을 수 없는 경우 이 동일한 프로세스를 사용하여 추가 워크로드에 프로그래밍 방식으로 AWS 계정 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 이 절차에서는 **PowerUserAccess** 관리형 정책을 사용하여 권한을 할당했습니다. 최소 권한의 모범 사례를 따르려면, 보다 제한적인 정책을 사용하거나, 프로그램에 필요한 리소스만 액세스하도록 제한하는 사용자 지정 정책을 만드는 것이 좋습니다. 사용자 권한을 특정 AWS 리소스로 제한하는 정책을 사용하는 방법은 [AWS리소스에 대한 액세스 관리](access.md) 및 [IAM 자격 증명 기반 정책의 예](access_policies_examples.md) 단원을 참조하십시오. 사용자 그룹을 생성한 후 추가로 사용자를 추가하려면 [IAM 그룹의 사용자 편집](id_groups_manage_add-remove-users.md) 섹션을 참조하세요.

------
#### [ AWS CLI ]

1. **Automation**라는 사용자를 생성합니다.
   + [aws iam create-user](https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html)

   ```
                 aws iam create-user \
                     --user-name Automation
   ```

1. **AutomationGroup**이라는 IAM 사용자 그룹을 생성하고, AWS 관리형 정책 `PowerUserAccess`를 그룹에 연결한 다음 **Automation** 사용자를 그룹에 추가합니다.
**참고**  
*AWS 관리형 정책*은 AWS에서 생성 및 관리하는 독립적인 정책입니다. 각 정책에는 정책 이름이 포함된 Amazon 리소스 이름(ARN)이 있습니다. 예를 들어 `arn:aws:iam::aws:policy/IAMReadOnlyAccess`는 AWS 관리형 정책입니다. ARN에 대한 자세한 내용은 [IAM ARN](reference_identifiers.md#identifiers-arns) 섹션을 참조하세요. AWS에 대한 AWS 서비스 관리형 정책의 목록은 [AWS 관리형 정책](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)을 참조하세요.
   + [aws iam create-group](https://docs.aws.amazon.com/cli/latest/reference/iam/create-group.html) 

     ```
                       aws iam create-group \
                           --group-name AutomationGroup
     ```
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)

     ```
                       aws iam attach-group-policy \
                           --policy-arn arn:aws:iam::aws:policy/PowerUserAccess \
                           --group-name AutomationGroup
     ```
   + [aws iam add-user-to-group](https://docs.aws.amazon.com/cli/latest/reference/iam/add-user-to-group.html) 

     ```
                      aws iam add-user-to-group \
                          --user-name Automation \
                          --group-name AutomationGroup
     ```
   + [aws iam get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html) 명령을 실행하여 **AutomationGroup** 및 구성원을 나열합니다.

     ```
                     aws iam get-group \
                          --group-name AutomationGroup
     ```

1. 워크로드에 필요한 보안 자격 증명을 생성합니다.
   + **테스트용 액세스 키 생성** - [aws iam create-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     ```
                            aws iam create-access-key \
                                --user-name Automation
     ```

     이 명령의 출력에는 비밀 액세스 키와 액세스 키 ID가 표시됩니다. 안전한 위치에 이 정보를 기록하고 저장합니다. 이러한 자격 증명을 손실하면 복구할 수 없으며, 새 액세스 키를 생성해야 합니다.
**중요**  
이러한 IAM 사용자 액세스 키는 계정에 보안 위험을 초래하는 장기 자격 증명입니다. 테스트를 완료한 후에는 이러한 액세스 키를 삭제하는 것이 좋습니다. 액세스 키를 고려하고 있는 경우 워크로드 IAM 사용자에 대해 MFA를 활성화할 수 있는지 여부를 조사하고 IAM 액세스 키를 사용하는 대신 [aws sts get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html)을 사용하여 세션에 대한 임시 자격 증명을 획득하세요.
   + **AWS CodeCommit에 대한 SSH 퍼블릭 키 업로드** – [aws iam upload-ssh-public-key](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-ssh-public-key.html)

     다음 예제에서는 SSH 퍼블릭 키가 `sshkey.pub` 파일에 저장되어 있다고 가정합니다.

     ```
                            aws upload-ssh-public-key \
                                --user-name Automation \
                                --ssh-public-key-body file://sshkey.pub
     ```
   + **X.509 서명 인증서 업로드** – [aws iam upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html)

     AWS Certificate Manager에서 지원되지 않는 리전에 있는 경우 보안 SOAP 프로토콜 요청을 해야 한다면 X.509 인증서를 업로드하세요. ACM은 서버 인증서를 프로비저닝, 관리 및 배포하기 위한 기본 도구입니다. ACM 사용에 대한 자세한 내용은 [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)를 참조하세요.

     다음 예제에서는 X.509 서명 인증서가 `certificate.pem` 파일에 저장되어 있다고 가정합니다.

     ```
                           aws iam upload-signing-certificate \
                           --user-name Automation \
                           --certificate-body file://certificate.pem
     ```

워크로드가 IAM 역할을 맡을 수 없는 경우 이 동일한 프로세스를 사용하여 추가 워크로드에 프로그래밍 방식으로 AWS 계정 리소스에 액세스할 수 있는 권한을 부여할 수 있습니다. 이 절차에서는 **PowerUserAccess** 관리형 정책을 사용하여 권한을 할당했습니다. 최소 권한의 모범 사례를 따르려면, 보다 제한적인 정책을 사용하거나, 프로그램에 필요한 리소스만 액세스하도록 제한하는 사용자 지정 정책을 만드는 것이 좋습니다. 사용자 권한을 특정 AWS 리소스로 제한하는 정책을 사용하는 방법은 [AWS리소스에 대한 액세스 관리](access.md) 및 [IAM 자격 증명 기반 정책의 예](access_policies_examples.md) 단원을 참조하십시오. 사용자 그룹을 생성한 후 추가로 사용자를 추가하려면 [IAM 그룹의 사용자 편집](id_groups_manage_add-remove-users.md) 섹션을 참조하세요.

------

# ID에 다중 인증 사용
<a name="gs-identities-mfa"></a>

ID에 다중 인증(MFA)을 사용하는 것 역시 또 다른 IAM 권장 사항입니다. MFA는 사용자가 ID를 확인하기 위해 사용자 이름과 암호를 입력한 후 추가 인증 요소를 제공해야 하는 추가 보안 계층입니다. 사용자의 암호가 침해되더라도 공격자의 무단 액세스를 훨씬 더 어렵게 만들어 보안을 크게 강화합니다. MFA는 온라인 계정, 클라우드 서비스 및 기타 민감한 리소스에 대한 액세스를 보호하는 모범 사례로 널리 채택되고 있습니다. AWS는 루트 사용자, IAM 사용자, IAM Identity Center의 사용자, Builder ID, 페더레이션 사용자에 대해 MFA를 지원합니다. 보안을 강화하기 위해 사용자의 리소스 액세스 또는 특정 조치를 허용하기 전에 MFA 구성을 요구하는 정책을 생성하고 이를 IAM 역할에 연결할 수 있습니다. IAM Identity Center는 IAM Identity Center의 모든 사용자가 사용자 이름과 암호 외에도 MFA로 로그인해야 하도록 기본적으로 MFA가 설정된 상태로 사전 구성되어 있습니다.

**참고**  
모든 AWS 계정 유형(독립 실행형, 관리 및 멤버 계정)은 루트 사용자에 대해 MFA를 구성해야 합니다. MFA가 아직 활성화되지 않은 경우 사용자는 AWS Management Console에 액세스하기 위해 처음 로그인을 시도한 날로부터 35일 이내에 MFA를 등록해야 합니다.

자세한 내용은 [IAM Identity Center에서 MFA 디바이스 구성](https://docs.aws.amazon.com/singlesignon/latest/userguide/mfa-getting-started.html)과 [IAM의 AWS 다중 인증](id_credentials_mfa.md) 섹션을 참조하세요.

# 최소 권한 준비
<a name="getting-started-reduce-permissions"></a>

*최소 권한*을 사용하는 것이 IAM 모범 권장 사항입니다. 최소 권한이라는 개념은 작업을 수행하는 데 필요한 권한만 부여하고 다른 추가 권한을 없는 것입니다. 설정을 완료할 때 최소 권한을 어떻게 지원할 것인지 고려하세요. 루트 사용자, 관리 사용자 및 비상 액세스 IAM 사용자에게는 일상적인 작업에 필요하지 않은 강력한 권한이 주어집니다. AWS에 대해 알아보고 다양한 서비스를 테스트하는 동안 여러 가지 시나리오에서 사용할 수 있는 권한이 적은 추가 사용자를 IAM Identity Center에 한 명 이상 생성하는 것이 좋습니다. IAM 정책을 사용하여 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의한 다음 이러한 리소스와 최소 권한 계정을 연결합니다.

IAM Identity Center를 사용하는 경우 IAM Identity Center 권한 세트를 사용하여 시작하는 것을 고려해보세요. 자세한 내용은 *IAM Identity Center 사용 설명서*의 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)을 참조하세요.

IAM Identity Center를 사용하지 않는 경우 IAM 역할을 사용하여 다양한 IAM 엔터티에 대한 권한을 정의합니다. 자세한 내용은 [IAM 역할 생성](id_roles_create.md)를 참조하세요.

IAM 역할과 IAM Identity Center 권한 세트 모두 직무에 따른 AWS 관리형 정책을 사용할 수 있습니다. 이러한 정책에서 부여하는 권한에 대한 자세한 내용은 [직무에 관한 AWS 관리형 정책](access_policies_job-functions.md) 섹션을 참조하세요.

**중요**  
AWS 관리형 정책은 모든 AWS 고객이 사용할 수 있기 때문에 특정 사용 사례에 대해 최소 권한을 부여하지 않을 수 있습니다. 설정을 마친 후에는 IAM Access Analyzer를 사용하여 AWS CloudTrail에 로그인한 액세스 활동을 기반으로 최소 권한을 생성하는 것이 좋습니다. 정책 생성에 대한 자세한 내용은 [IAM Access Analyzer 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)을 참조하세요.

시작할 때는 AWS 관리형 정책을 사용하여 권한을 부여하는 것이 좋습니다. 사전 정의된 활성 샘플 기간(예: 90일)이 지난 후에는 사용자와 워크로드에서 액세스한 서비스를 검토할 수 있습니다. 그런 다음 권한이 축소된 새 고객 관리형 정책을 생성하여 AWS 관리형 정책을 대체할 수 있습니다. 새 정책에는 샘플 기간 동안 액세스한 서비스만 포함되어야 합니다. 권한을 업데이트하여 AWS 관리형 정책을 제거하고 생성한 새 고객 관리형 정책을 연결합니다.

# AWS 계정에 대해 마지막으로 액세스한 정보 검토
<a name="getting-started-reduce-permissions-last-accessed"></a>

IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 IAM에 대해 마지막으로 액세스한 서비스 정보를 볼 수 있습니다. 데이터, 필요 권한, 문제 해결, 지원되는 리전에 대한 중요 정보는 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

IAM에서 다음 리소스 유형에 대한 정보를 볼 수 있습니다. 각각의 경우 정보에는 지정된 보고 기간 동안 허용된 서비스가 포함됩니다.
+ **IAM 사용자** - 사용자가 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
+ **IAM 그룹** - IAM 그룹 구성원이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 멤버 수가 포함됩니다.
+ **IAM 역할** - 해당 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
+ **정책** - 사용자 또는 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 엔터티 수가 포함됩니다.

**참고**  
IAM의 리소스에 대한 액세스 정보를 보려면 먼저 보고 기간, 보고된 엔터티 및 정보에 대해 평가된 정책 유형을 이해해야 합니다. 자세한 내용은 [마지막으로 액세스한 정보에 대해 알아야 할 사항](access_policies_last-accessed.md#access_policies_last-accessed-know) 섹션을 참조하세요.

마지막으로 액세스한 정보에 대한 자세한 내용은 [마지막으로 액세스한 정보를 사용하여 AWS에서 권한 재정의](access_policies_last-accessed.md) 섹션을 참조하세요.

## AWS 계정에 대해 마지막으로 액세스한 정보 검토
<a name="getting-started-reduce-permissions-last-accessed-proc"></a>

------
#### [ Console ]

1. *AWS 로그인 사용 설명서*의 [AWS에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 항목에 설명된 대로 사용자 유형에 맞는 로그인 절차를 따르세요.

1. **IAM 콘솔 홈** 페이지의 왼쪽 탐색 창에서 쿼리를 **IAM 검색** 텍스트 상자에 입력합니다.

1. 탐색 창에서 **사용자 그룹**, **사용자**, **역할** 또는 **정책**을 선택합니다.

1. 사용자, 사용자 그룹, 역할 또는 정책 이름을 선택하여 해당 **요약** 페이지를 열고 **마지막 액세스** 탭을 선택합니다. 선택한 리소스를 기반으로 다음 정보를 확인합니다.
   + **사용자 그룹** - 사용자 그룹 멤버가 액세스할 수 있는 서비스 목록을 봅니다. 또한 멤버가 서비스에 마지막으로 액세스한 시기, 사용한 사용자 그룹 정책 및 요청한 사용자 그룹 멤버를 볼 수 있습니다. 정책의 이름을 선택하여 정책이 관리형 정책인지 아니면 인라인 사용자 그룹 정책인지 확인합니다. 사용자 그룹 멤버의 이름을 선택하여 사용자 그룹의 모든 멤버를 확인하고 마지막으로 서비스에 액세스한 시간을 확인합니다.
   + **사용자** - 사용자가 액세스할 수 있는 서비스 목록을 봅니다. 또한 서비스에 마지막으로 액세스한 시기 및 사용한 정책을 볼 수도 있습니다. 정책의 이름을 선택하여 정책이 관리형 정책인지, 인라인 사용자 정책인지, 아니면 사용자 그룹의 인라인 정책인지 확인합니다.
   + **역할** - 역할이 액세스할 수 있는 서비스 목록, 서비스에 마지막으로 액세스한 역할 및 사용된 정책 목록을 표시합니다. 정책의 이름을 선택하여 정책이 관리형 정책인지 아니면 인라인 역할 정책인지 확인합니다.
   + **정책** - 정책에서 허용된 작업이 있는 서비스 목록을 봅니다. 서비스에 액세스하는 데 정책이 마지막으로 사용된 시기와 해당 정책을 사용한 엔터티(사용자 또는 역할)도 볼 수 있습니다. 그 **마지막 액세스** 날짜에는 다른 정책을 통해 이 정책에 대한 액세스 권한이 부여된 시기도 포함됩니다. 엔터티의 이름을 선택하여 어떤 엔터티에 이 정책이 연결되어 있는지 그리고 마지막으로 서비스에 액세스한 시간을 확인합니다.

1. 테이블의 **서비스** 열을 선택하고 [마지막으로 액세스한 작업 정보가 포함된 서비스 중 하나](access_policies_last-accessed-action-last-accessed.md)의 이름을 선택하여 IAM 엔터티가 액세스하려고 시도한 관리 작업 목록을 확인합니다. 사용자가 마지막으로 작업을 수행하려고 시도한 시점을 보여주는 AWS 리전 및 타임스탬프를 볼 수 있습니다.

1. **마지막으로 액세스한 작업 정보가 포함된 서비스**의 서비스 및 관리 작업에 대해 [마지막 액세스](access_policies_last-accessed-action-last-accessed.md) 열이 표시됩니다. 이 열에 반환되는 다음과 같은 가능한 결과를 검토합니다. 이러한 결과는 서비스나 작업이 허용되는지, 액세스되는지, 마지막으로 액세스한 정보에 대해 AWS가 추적하는지 여부에 따라 달라집니다.  
**<number of>일 전**  
추적 기간에 서비스 또는 작업이 사용된 이후의 일 수입니다. 서비스에 대한 추적 기간은 지난 400일입니다. Amazon S3 작업에 대한 추적 기간은 2020년 4월 12일에 시작되었습니다. Amazon EC2, IAM 및 Lambda 작업에 대한 추적 기간은 2021년 4월 7일에 시작되었습니다. 다른 모든 서비스의 추적 기간은 2023년 5월 23일에 시작되었습니다. 각 AWS 리전의 추적 시작 날짜에 대한 자세한 내용은 [AWS에서 마지막으로 액세스한 정보를 추적하는 위치](access_policies_last-accessed.md#last-accessed_tracking-period) 섹션을 참조하세요.  
**추적 기간에 액세스하지 않음**  
추적된 서비스 또는 작업은 추적 기간 동안 엔터티에서 사용되지 않았습니다.

   목록에 나타나지 않는 작업에 대한 권한이 있을 수 있습니다. 작업에 대한 추적 정보가 현재 AWS에 포함되지 않는 경우 이 문제가 발생할 수 있습니다. 추적 정보가 없는 경우 권한을 결정해서는 안 됩니다. 대신 이 정보를 사용하여 최소 권한 부여에 대한 전반적인 전략을 알리고 지원하는 것이 좋습니다. 정책을 확인하여 액세스 수준이 적절한지 확인합니다.

------
#### [ AWS CLI ]

AWS CLI를 사용하여 AWS 서비스 및 Amazon S3, Amazon EC2, IAM 및 Lambda 작업에 액세스하기 위해 AWS 계정의 IAM 리소스가 사용된 마지막 시간에 대한 정보를 검색할 수 있습니다. IAM 리소스는 사용자, 사용자 그룹, 역할 또는 정책입니다.
+ AWS 계정에서 IAM 리소스에 대한 보고서를 생성합니다. 요청에는 보고서가 필요한 IAM 리소스(사용자, 사용자 그룹, 역할 또는 정책)의 ARN이 포함되어야 합니다. 보고서에 생성할 세부 수준을 지정하여 서비스 또는 서비스 및 작업 모두에 대한 액세스 세부 정보를 볼 수 있습니다. 이 요청은 작업이 완료될 때까지 `get-service-last-accessed-details` 및 `get-service-last-accessed-details-with-entities` 작업에서 `job-status`를 모니터링하기 위해 사용할 수 있는 `job-id`를 반환합니다.
  + [aws iam generate-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-service-last-accessed-details.html)

  1. 이전 단계의 `job-id` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
     + [aws iam get-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details.html)

     이 작업은 `generate-service-last-accessed-details` 작업에서 요청한 리소스 유형 및 세부 수준에 따라 다음 정보를 반환합니다.
     + **사용자** - 지정한 사용자가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자의 마지막 시도 날짜 및 시간과 사용자의 ARN을 반환합니다.
     + **사용자 그룹** - 사용자 그룹에 연결된 정책을 사용하여 지정된 사용자 그룹의 멤버가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자 그룹 멤버가 마지막으로 시도한 날짜와 시간을 반환합니다. 또한 해당 사용자의 ARN과 서비스에 액세스하려고 시도한 사용자 그룹 멤버의 총 수를 반환합니다. 모든 멤버 목록을 반환하려면 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 작업을 사용합니다.
     + **역할** - 지정한 역할이 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 역할의 마지막 시도 날짜 및 시간과 역할의 ARN을 반환합니다.
     + **정책** - 지정된 정책으로 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 엔터티(사용자 또는 역할)가 정책을 사용하여 마지막으로 서비스에 액세스하려고 시도한 날짜와 시간을 반환합니다. 또한 엔터티의 ARN과 액세스를 시도한 엔터티의 총 수를 반환합니다.

  1. 특정 서비스에 액세스하기 위해 사용자 그룹 또는 정책 권한을 사용하는 엔터티에 대해 자세히 알아봅니다. 이 작업은 각 엔터티의 ARN, ID, 이름, 경로, 유형(사용자 또는 역할) 및 마지막으로 서비스에 액세스하려고 시도한 엔터티의 목록을 반환합니다. 사용자와 역할에 대해 이 작업을 사용할 수도 있지만 해당 엔터티에 대한 정보만 반환합니다.
     + [aws iam get-service-last-accessed-details-with-entities](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details-with-entities.html)

  1. 특정 서비스에 액세스하기 위해 자격 증명(사용자, 사용자 그룹 또는 역할)이 사용하는 자격 기반 정책에 대해 자세히 알아봅니다. 자격 증명 및 서비스를 지정한 경우 이 작업은 해당 자격 증명이 지정된 서비스에 액세스하는 데 사용할 수 있는 권한 정책 목록을 반환합니다. 이 작업은 정책의 현재 상태를 제공하며 생성된 보고서에 의존하지 않습니다. 또한 리소스 기반 정책, 액세스 제어 목록, AWS Organizations 정책, IAM 권한 경계 또는 세션 정책 등의 다른 정책 유형을 반환하지 않습니다. 자세한 내용은 [정책 유형](access_policies.md#access_policy-types) 또는 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.
     + [aws iam list-policies-granting-service-access](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies-granting-service-access.html)

------
#### [ API ]

AWS를 사용하여 AWS API 서비스 및 Amazon S3, Amazon EC2, IAM 및 Lambda 작업에 액세스하기 위해 IAM 리소스가 사용된 마지막 시간에 대한 정보를 검색할 수 있습니다. IAM 리소스는 사용자, 사용자 그룹, 역할 또는 정책입니다. 보고서에 생성할 세부 수준을 지정하여 서비스 또는 서비스 및 작업 모두에 대한 세부 정보를 볼 수 있습니다.

1. 보고서를 생성합니다. 요청에는 보고서가 필요한 IAM 리소스(사용자, 사용자 그룹, 역할 또는 정책)의 ARN이 포함되어야 합니다. 작업이 완료될 때까지 `GetServiceLastAccessedDetails` 및 `GetServiceLastAccessedDetailsWithEntities` 작업에서 `JobStatus`를 모니터링하기 위해 사용할 수 있는 `JobId`를 반환합니다.
   + [GenerateServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateServiceLastAccessedDetails.html)

1. 이전 단계의 `JobId` 파라미터를 사용하여 보고서에 대한 세부 정보를 검색합니다.
   + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html)

   이 작업은 `GenerateServiceLastAccessedDetails` 작업에서 요청한 리소스 유형 및 세부 수준에 따라 다음 정보를 반환합니다.
   + **사용자** - 지정한 사용자가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자의 마지막 시도 날짜 및 시간과 사용자의 ARN을 반환합니다.
   + **사용자 그룹** - 사용자 그룹에 연결된 정책을 사용하여 지정된 사용자 그룹의 멤버가 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 사용자 그룹 멤버가 마지막으로 시도한 날짜와 시간을 반환합니다. 또한 해당 사용자의 ARN과 서비스에 액세스하려고 시도한 사용자 그룹 멤버의 총 수를 반환합니다. 모든 멤버 목록을 반환하려면 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 작업을 사용합니다.
   + **역할** - 지정한 역할이 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 역할의 마지막 시도 날짜 및 시간과 역할의 ARN을 반환합니다.
   + **정책** - 지정된 정책으로 액세스할 수 있는 서비스 목록을 반환합니다. 각 서비스에 대해 작업은 엔터티(사용자 또는 역할)가 정책을 사용하여 마지막으로 서비스에 액세스하려고 시도한 날짜와 시간을 반환합니다. 또한 엔터티의 ARN과 액세스를 시도한 엔터티의 총 수를 반환합니다.

1. 특정 서비스에 액세스하기 위해 사용자 그룹 또는 정책 권한을 사용하는 엔터티에 대해 자세히 알아봅니다. 이 작업은 각 엔터티의 ARN, ID, 이름, 경로, 유형(사용자 또는 역할) 및 마지막으로 서비스에 액세스하려고 시도한 엔터티의 목록을 반환합니다. 사용자와 역할에 대해 이 작업을 사용할 수도 있지만 해당 엔터티에 대한 정보만 반환합니다.
   + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html)

1. 특정 서비스에 액세스하기 위해 자격 증명(사용자, 사용자 그룹 또는 역할)이 사용하는 자격 기반 정책에 대해 자세히 알아봅니다. 자격 증명 및 서비스를 지정한 경우 이 작업은 해당 자격 증명이 지정된 서비스에 액세스하는 데 사용할 수 있는 권한 정책 목록을 반환합니다. 이 작업은 정책의 현재 상태를 제공하며 생성된 보고서에 의존하지 않습니다. 또한 리소스 기반 정책, 액세스 제어 목록, AWS Organizations 정책, IAM 권한 경계 또는 세션 정책 등의 다른 정책 유형을 반환하지 않습니다. 자세한 내용은 [정책 유형](access_policies.md#access_policy-types) 또는 [단일 계정 내 요청에 대한 정책 평가](reference_policies_evaluation-logic_policy-eval-basics.md) 섹션을 참조하세요.
   + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html)

------

# 액세스 활동을 기반으로 정책 생성
<a name="getting-started_reduce-permissions-edit-policy"></a>

IAM 사용자 또는 IAM 역할에 대해 AWS CloudTrail에 기록된 액세스 활동을 사용하여 IAM 액세스 분석기에서 특정 사용자 및 역할에 필요한 서비스에만 액세스할 수 있도록 허용하는 고객 관리형 정책을 생성하도록 할 수 있습니다.

IAM Access Analyzer에서 IAM 정책을 생성하면 정책을 추가로 사용자 지정하는 데 도움이 되는 정보가 반환됩니다. 정책이 생성되면 다음 두 가지 범주의 정보가 반환될 수 있습니다.
+ **작업 수준 정보가 포함된 정책** - Amazon EC2와 같은 일부 AWS 서비스의 경우 IAM Access Analyzer는 CloudTrail 이벤트에서 발견된 작업을 식별하고 생성된 정책에 사용된 작업을 나열할 수 있습니다. 지원되는 서비스의 목록은 [IAM Access Analyzer 정책 생성 서비스](access-analyzer-policy-generation-action-last-accessed-support.md) 단원을 참조하세요. 일부 서비스의 경우 생성된 정책에 서비스에 대한 작업을 추가하라는 IAM Access Analyzer 메시지가 표시됩니다.
+ **서비스 수준 정보 –이(가) 포함된 정책** IAM Access Analyzer는 [마지막으로 액세스한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed.html) 정보를 사용하여 최근에 사용한 모든 서비스가 포함된 정책 템플릿을 생성합니다. AWS Management Console을(를) 사용할 때 서비스를 검토하고 정책을 완료하기 위한 작업을 추가하라는 메시지가 표시됩니다.

## 액세스 활동을 기반으로 정책 생성
<a name="getting-started_reduce-permissions-edit-policy-section-1"></a>

다음 절차에서는 사용자의 사용에 맞게 역할에 부여된 권한을 줄입니다. 사용자를 선택할 때는 사용이 해당 역할의 예제로 적합한 사용자를 선택하세요. 많은 고객이 **PowerUser** 권한으로 테스트 사용자 계정을 설정한 다음 짧은 기간 동안 특정 작업을 수행하도록 하여 해당 작업을 수행하는 데 필요한 액세스 권한을 결정합니다.

------
#### [ Console ]

1. *AWS 로그인 사용 설명서*의 [AWS에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 항목에 설명된 대로 사용자 유형에 맞는 로그인 절차를 따르세요.

1. **IAM 콘솔 홈** 페이지의 왼쪽 탐색 창에서 쿼리를 **IAM 검색** 텍스트 상자에 입력합니다.

1. 탐색 창에서 **사용자**를 선택한 다음 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **권한** 탭의 CloudTrail 이벤트 기반 정책 생성에서 **정책 생성**을 선택합니다.

1. **정책 생성** 페이지에서 다음 항목을 구성합니다.
   + **기간 선택**에서 **지난 7일**을 선택합니다.
   + **분석할 CloudTrail 트레일**의 경우 이 사용자의 활동이 기록되는 리전 및 트레일을 선택합니다.
   + **새 서비스 역할 생성 및 사용**을 선택합니다.

1. **정책 생성**을 선택한 다음 역할이 생성될 때까지 기다립니다. **정책 생성 진행 중** 알림 메시지가 나타날 때까지 콘솔 페이지를 새로 고치거나 다른 페이지로 이동하지 마세요.

1. 정책이 생성된 후 필요에 따라 정책을 검토하고 리소스의 계정 ID 및 ARN을 사용하여 이를 사용자 지정해야 합니다. 또한 자동으로 생성된 정책에는 정책을 완료하는 데 필요한 작업 수준 정보가 포함되지 않았을 수 있습니다. 자세한 내용은 [IAM Access Analyzer 정책 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)을 참조하세요.

   예를 들어, `Allow` 효과와 `NotAction` 요소를 포함하는 첫 번째 명령문을 편집하여 Amazon EC2 및 Amazon S3 작업만 허용할 수 있습니다. 이 작업을 수행하려면 `FullAccessToSomeServices` ID가 있는 명령문으로 바꿉니다. 새 정책은 다음 예제 정책과 유사할 수 있습니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "FullAccessToSomeServices",
             "Effect": "Allow",
             "Action": [
                 "ec2:*",
                 "s3:*"
             ],
             "Resource": "*"
         },
         {
             "Effect": "Allow",
             "Action": [
                 "iam:CreateServiceLinkedRole",
                 "iam:DeleteServiceLinkedRole",
                 "iam:ListRoles",
                 "organizations:DescribeOrganization"
             ],
             "Resource": "*"
         }
     ]
   }
   ```

------

1. [최소 권한 부여](best-practices.md#grant-least-privilege)의 모범 사례를 지원하기 위해 [정책 검증](access_policies_policy-validator.md)에서 반환된 오류, 경고 또는 제안을 검토하고 수정합니다.

1. 특정 작업 및 리소스에 대한 정책 권한을 추가로 줄이려면 CloudTrail **이벤트 기록(Event history)**에서 이벤트를 확인합니다. 여기에서 사용자가 액세스한 특정 작업 및 리소스에 대한 자세한 정보를 볼 수 있습니다. 자세한 내용은 *AWS CloudTrail사용 설명서*의 [CloudTrail 콘솔에서 CloudTrail 이벤트 보기](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)를 참조하세요.

1. 정책을 검토 및 검증한 후에는 정책을 설명할 수 있는 이름으로 저장하세요.

1. **역할** 페이지로 이동하여 새 정책에서 허용하는 작업을 수행할 때 사용자가 수임할 역할을 선택합니다.

1. **권한** 탭을 선택한 다음 **권한 추가**, **정책 연결**을 선택합니다.

1. **권한 정책 연결** 페이지의 **기타 권한 정책** 목록에서 만들어 둔 정책을 선택하고 **정책 연결**을 선택합니다.

1. **역할** 세부 정보 페이지로 돌아갑니다. 이제 역할에 앞선 AWS 관리형 정책(예: **PowerUserAccess**)과 새 정책을 추가했습니다. AWS 관리형 정책의 확인란을 선택한 후 **제거**를 선택합니다. 제거를 확인하라는 메시지가 표시되면 **제거**를 선택합니다.

이제 새로 만든 정책에 따라 IAM 사용자, SAML 및 OIDC 페더레이션 보안 주체, 워크로드에 대한 액세스 권한이 축소됩니다.

------
#### [ AWS CLI ]

다음 명령을 사용하여 AWS CLI을(를) 사용하는 정책을 생성할 수 있습니다.

**정책 생성**
+ [aws accessanalyzer start-policy-generation](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/start-policy-generation.html)

**생성된 정책 보기**
+ [aws accessanalyzer get-generated-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/get-generated-policy.html)

**정책 생성 요청 취소**
+ [aws accessanalyzer cancel-policy-generation](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/cancel-policy-generation.html)

**정책 생성 요청 목록 보기**
+ [aws accessanalyzer list-policy-generations](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/list-policy-generations.html)

------
#### [ API ]

다음 작업을 사용하여 AWS API를 사용하는 정책을 생성할 수 있습니다.

**정책 생성**
+ [StartPolicyGeneration](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_StartPolicyGeneration.html)

**생성된 정책 보기**
+ [GetGeneratedPolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_GetGeneratedPolicy.html)

**정책 생성 요청 취소**
+ [CancelPolicyGeneration](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_CancelPolicyGeneration.html)

**정책 생성 요청 목록 보기**
+ [ListPolicyGenerations](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ListPolicyGenerations.html)

------

# 검색을 사용하여 IAM 리소스 찾기
<a name="console_search"></a>

액세스 조사 결과를 살펴보면서 IAM 콘솔 검색 페이지를 사용하여 더 빠르게 IAM 리소스를 찾을 수 있습니다. 부분 리소스 이름 또는 ARN을 사용하여 리소스를 검색할 수 있습니다.

------
#### [ Console ]

IAM 콘솔 검색 기능으로 찾을 수 있는 항목은 다음과 같습니다.
+ 검색 키워드(예: 사용자, 그룹, 역할, 자격 증명 공급자, 정책)와 일치하는 IAM 엔터티 이름
+ 검색 키워드와 일치하는 작업

IAM 콘솔 검색 기능은 IAM Access Analyzer에 대한 정보를 반환하지 않습니다.

검색 결과의 각 행은 활성 링크입니다. 예를 들어 검색 결과에서 사용자 이름을 선택할 수 있습니다. 그러면 사용자 세부 정보 페이지로 이동합니다. 또는 예를 들어 **사용자 만들기** 활성 링크를 선택하여 **사용자 생성** 페이지로 이동할 수 있습니다.

**참고**  
액세스 키 검색에서는 검색 상자에 전체 액세스 키 ID를 입력해야 합니다. 검색 결과는 해당 키와 연결된 사용자를 보여줍니다. 여기에서 해당 사용자의 액세스 키를 관리할 수 있는 사용자 페이지로 이동할 수 있습니다.

IAM 콘솔의 **검색** 페이지를 사용하여 해당 계정과 관련된 항목을 찾습니다.

**IAM 콘솔에서 항목을 검색하는 방법**

1. *AWS 로그인 사용 설명서*의 [AWS에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 항목에 설명된 대로 사용자 유형에 맞는 로그인 절차를 따르세요.

1. **IAM 콘솔 홈** 페이지의 왼쪽 탐색 창에서 쿼리를 **IAM 검색** 텍스트 상자에 입력합니다.

1. 탐색 창에서 **검색**을 선택합니다.

1. **검색** 상자에 검색 키워드를 입력합니다.

1. 검색 결과 목록에서 링크를 선택하여 콘솔의 해당 부분으로 이동합니다.

다음 아이콘은 검색으로 찾을 수 있는 항목의 유형을 식별합니다.


****  

| Icon | 설명 | 
| --- | --- | 
|  ![\[a portrait outline on gray background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_user.png)  | IAM 사용자 | 
|  ![\[multiple portrait outlines on a blue background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_group.png)  | IAM 그룹 | 
|  ![\[a magic wand icon on a navy background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_role.png)  | IAM 역할 | 
|  ![\[a document icon on an organe background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_policy.png)  | IAM 정책 | 
|  ![\[a white start on an organe background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_action.png)  | "사용자 만들기" 또는 "정책 연결"과 같은 작업 | 
|  ![\[a white X on a red background\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/search_delete.png)  | 키워드 delete의 결과 | 

**샘플 검색 문구**

IAM 검색 시 다음과 같은 문구를 사용할 수 있습니다. 기울임꼴로 표시된 용어를 찾으려는 실제 IAM 사용자, 그룹, 역할, 액세스 키, 정책 또는 ID 제공업체의 이름으로 대체합니다.
+ ***user\$1name*** 또는 ***group\$1name* ** 또는 ***role\$1name*** 또는 ***policy\$1name*** 또는 ***identity\$1provider\$1name***
+ ***access\$1key***
+ **add user *user\$1name* to groups** 또는 **add users to group *group\$1name***
+ **remove user *user\$1name* from groups**
+ **delete *user\$1name*** 또는 **delete *group\$1name*** 또는 **delete *role\$1name*** 또는 **delete *policy\$1name*** 또는 **delete *identity\$1provider\$1name***
+ **manage access keys *user\$1name***
+ **manage signing certificates *user\$1name***
+ **users**
+ **manage MFA for *user\$1name***
+ **manage password for *user\$1name***
+ **create role**
+ **password policy**
+ **edit trust policy for role *role\$1name***
+ **show policy document for role *role\$1name***
+ **attach policy to *role\$1name***
+ **create managed policy**
+ **create user**
+ **create group**
+ **attach policy to *group\$1name***
+ **attach entities to *policy\$1name***
+ **detach entities from *policy\$1name***

------