

# IAM 사용자의 액세스 키 관리
<a name="id_credentials_access-keys"></a>

**중요**  
[모범 사례](best-practices.md)는 액세스 키와 같은 장기 보안 인증을 생성하는 대신 임시 보안 인증(예: IAM 역할)을 사용하는 것입니다. 액세스 키를 생성하기 전에 [장기 액세스 키의 대안](security-creds-programmatic-access.md#security-creds-alternatives-to-long-term-access-keys)을 검토합니다.

액세스 키는 IAM 사용자 또는 AWS 계정 루트 사용자에 대한 장기 보안 인증입니다. 액세스 키를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 요청에 서명할 수 있습니다(직접 또는 AWS SDK를 사용하여). 자세한 내용은 [AWS 보안 자격 증명을 사용한 프로그래밍 방식 액세스](security-creds-programmatic-access.md) 섹션을 참조하세요.

액세스 키는 액세스 키 ID(예: `AKIAIOSFODNN7EXAMPLE`)와 비밀 액세스 키(예: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`)의 두 가지 부분으로 구성됩니다. 액세스 키 ID와 보안 액세스 키를 함께 사용하여 요청을 인증해야 합니다.



액세스 키 페어를 생성할 때는 액세스 키 ID와 보안 액세스 키를 안전한 위치에 저장합니다. 시크릿 액세스 키는 생성할 때만 가져올 수 있습니다. 보안 액세스 키를 분실한 경우 액세스 키를 삭제하고 새 키를 생성해야 합니다. 자세한 지침은 [액세스 키 업데이트](id-credentials-access-keys-update.md) 섹션을 참조하세요.

사용자당 최대 2개의 액세스 키를 가질 수 있습니다.

**중요**  
액세스 키가 있는 IAM 사용자는 계정 보안 위험이 있습니다. 액세스 키를 안전하게 관리하세요. [계정 식별자를 찾는 데](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) 도움이 되더라도 액세스 키를 권한 없는 당사자에게 제공하지 마세요. 이로 인해 다른 사람에게 계정에 대한 영구 액세스를 제공하게 될 수 있습니다.  
다음은 액세스 키를 사용할 때 알아야 할 사항입니다.  
**금지 사항**. 액세스 키를 생성할 때는 계정의 루트 자격 증명을 사용하면 안 됩니다.
**금지 사항.** 애플리케이션 파일에 액세스 키나 자격 증명 정보를 넣으면 안 됩니다.
**금지 사항.** 프로젝트 영역에 액세스 키나 자격 증명 정보가 포함된 파일을 포함하면 안 됩니다.
공유 AWS 자격 증명 파일에 저장된 액세스 키 또는 자격 증명 정보는 일반 텍스트로 저장됩니다.

## 모니터링 권장 사항
<a name="monitor-access-keys"></a>

액세스 키 생성 후
+ AWS CloudTrail을 사용하여 액세스 키 사용량을 모니터링하고 무단 액세스 시도를 탐지합니다. 자세한 내용은 [AWS CloudTrail을 사용하여 IAM 및 AWS STS API 호출 로깅](cloudtrail-integration.md) 섹션을 참조하세요.
+ 악의적인 활동을 탐지하는 데 도움이 되도록 거부된 액세스 시도에 대해 관리자에게 알리도록 CloudWatch 경보를 설정합니다. 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)를 참조하세요.
+ 필요에 따라 액세스 키를 정기적으로 검토, 업데이트 및 삭제합니다.

다음 주제에서는 액세스 키와 관련된 관리 작업에 대한 자세한 정보를 제공합니다.

**Topics**
+ [모니터링 권장 사항](#monitor-access-keys)
+ [IAM 사용자에게 인라인 정책을 연결하여 액세스 키 사용 제어](access-keys_inline-policy.md)
+ [액세스 키를 관리하는 데 필요한 권한](access-keys_required-permissions.md)
+ [IAM 사용자가 자체 액세스 키를 관리하는 방법](access-key-self-managed.md)
+ [IAM 관리자가 IAM 사용자 액세스 키를 관리하는 방법](access-keys-admin-managed.md)
+ [액세스 키 업데이트](id-credentials-access-keys-update.md)
+ [액세스 키 보안](securing_access-keys.md)

# IAM 사용자에게 인라인 정책을 연결하여 액세스 키 사용 제어
<a name="access-keys_inline-policy"></a>

[워크로드에서 IAM 역할과 함께 임시 보안 인증을 사용](best-practices.md#bp-workloads-use-roles)하여 AWS에 액세스하도록 하는 것이 좋습니다. 액세스 키가 있는 IAM 사용자에게는 최소 권한 액세스가 할당되어야 하며 [다중 인증(MFA)](id_credentials_mfa.md)이 활성화되어야 합니다. IAM 역할 위임하기에 대한 자세한 내용은 [역할 수임 방법](id_roles_manage-assume.md) 섹션을 참조하세요.

그러나 서비스 자동화 또는 기타 단기 사용 사례에 대한 개념 증명 테스트를 생성하고 액세스 키가 있는 IAM 사용자를 사용하여 워크로드를 실행하기로 선택하는 경우 [정책 조건을 사용하여 IAM 사용자 자격 증명의 액세스를 추가로 제한](best-practices.md#use-policy-conditions)하는 것이 좋습니다.

이 경우 지정된 시간 이후에 자격 증명이 만료되는 시간 제한 정책을 생성하거나, 보안 네트워크에서 워크로드를 실행하는 경우 IP 제한 정책을 사용할 수 있습니다.

이 두 사용 사례 모두 액세스 키가 있는 IAM 사용자에게 연결된 인라인 정책을 사용할 수 있습니다.

**IAM 사용자에 대한 시간 제한 정책을 구성하는 방법**

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

1. 탐색 창에서 **사용자**를 선택한 다음, 단기 사용 사례를 위한 사용자의 이름을 선택합니다. 아직 사용자를 생성하지 않은 경우 지금 [사용자를 생성](getting-started-workloads.md)할 수 있습니다.

1. 사용자 **세부 정보** 페이지에서 **권한** 탭을 선택합니다.

1. **권한 추가**를 선택한 다음 **인라인 정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON**을 선택하여 JSON 편집기를 표시합니다.

1. JSON 편집기에서 `aws:CurrentTime` 타임스탬프 값을 원하는 만료 날짜 및 시간으로 바꾸어 다음 정책을 입력합니다.

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

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
         "DateGreaterThan": {
         "aws:CurrentTime": "2025-03-01T00:12:00Z"
           }
         }
       }
     ]
   }
   ```

------

   이 정책은 `Deny` 효과를 사용하여 지정된 날짜 이후의 모든 리소스에 대한 모든 작업을 제한합니다. `DateGreaterThan` 조건은 현재 시간을 설정된 타임스탬프와 비교합니다.

1. **다음**을 선택하여 **검토 및 생성** 페이지로 이동합니다. **정책** 세부 정보의 **정책 이름**에 정책의 이름을 입력한 다음 **정책 생성**을 선택합니다.

정책이 생성되면 사용자의 **권한** 탭에 표시됩니다. 현재 시간이 정책에 지정된 시간보다 크거나 같으면 사용자는 더 이상 AWS 리소스에 액세스할 수 없습니다. 워크로드 개발자에게 이러한 액세스 키에 지정된 만료 날짜에 대해 알려야 합니다.

**IAM 사용자에 대한 IP 제한 정책을 구성하는 방법**

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

1. 탐색 창에서 **사용자**를 선택한 다음 보안 네트워크에서 워크로드를 실행할 사용자를 선택합니다. 아직 사용자를 생성하지 않은 경우 지금 [사용자를 생성](getting-started-workloads.md)할 수 있습니다.

1. 사용자 **세부 정보** 페이지에서 **권한** 탭을 선택합니다.

1. **권한 추가**를 선택한 다음 **인라인 정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON**을 선택하여 JSON 편집기를 표시합니다.

1. 다음 IAM 정책을 JSON 편집기에 복사하고 퍼블릭 IPv4 또는 IPv6 주소 또는 범위를 필요에 따라 변경합니다. [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/)을 사용하여 현재 퍼블릭 IP 주소를 확인할 수 있습니다. 슬래시 표기법을 사용하여 개별 IP 주소 또는 IP 주소 범위를 지정할 수 있습니다. 자세한 내용은 [aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip) 섹션을 참조하세요.
**참고**  
IP 주소는 VPN 또는 프록시 서버에서 난독화되지 않아야 합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid":"IpRestrictionIAMPolicyForIAMUser",
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "NotIpAddress": {
             "aws:SourceIp": [
               "203.0.113.0/24",
               "2001:DB8:1234:5678::/64",
               "203.0.114.1"
             ]
           },
           "BoolIfExists": {
             "aws:ViaAWSService": "false"
           }
         }
       }
     ]
   }
   ```

------

   이 정책 예제에서는 요청이 네트워크(CIDR 표기법으로 지정) ‘203.0.113.0/24’, ‘2001:DB8:1234:5678::/64’ 또는 특정 IP 주소 ‘203.0.114.1’에서 시작되지 않는 한 이 정책이 적용된 IAM 사용자의 액세스 키 사용을 거부합니다.

1. **다음**을 선택하여 **검토 및 생성** 페이지로 이동합니다. **정책** 세부 정보의 **정책 이름**에 정책의 이름을 입력한 다음 **정책 생성**을 선택합니다.

정책이 생성되면 사용자의 **권한** 탭에 표시됩니다.

이 정책을 AWS Organizations의 여러 AWS 계정에 서비스 제어 정책(SCP)으로 적용할 수도 있습니다. 이 정책 설명을 이 SCP가 적용되는 AWS 계정 내의 IAM 사용자에게만 적용하려면 `aws:PrincipalArn` 추가 조건을 사용하는 것이 좋습니다. 다음 정책에는 해당 업데이트가 포함됩니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IpRestrictionServiceControlPolicyForIAMUsers",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "203.0.113.0/24",
            "2001:DB8:1234:5678::/64",
            "203.0.114.1"
          ]
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        },
        "ArnLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:user/*"
        }
      }
    }
  ]
}
```

------

# 액세스 키를 관리하는 데 필요한 권한
<a name="access-keys_required-permissions"></a>

**참고**  
`iam:TagUser`은 액세스 키에 설명을 추가하고 편집할 수 있는 선택적 권한입니다. 자세한 내용은 [IAM 사용자 태깅](id_tags_users.md) 섹션을 참조하세요.

자신의 IAM 사용자에 대한 액세스 키를 생성하려면 다음 정책에 따른 권한이 있어야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

자신의 IAM 사용자에 대한 액세스 키를 업데이트하려면 다음 정책에 따른 권한이 있어야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:GetAccessKeyLastUsed",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:TagUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# IAM 사용자가 자체 액세스 키를 관리하는 방법
<a name="access-key-self-managed"></a>

IAM 관리자는 [액세스 키를 관리하는 데 필요한 권한](access-keys_required-permissions.md)에 설명된 정책을 연결하여 IAM 사용자에게 액세스 키를 자체 관리할 수 있는 권한을 부여할 수 있습니다.

이러한 권한을 통해 IAM 사용자는 다음 절차를 사용하여 사용자 이름과 연결된 액세스 키를 생성, 활성화, 비활성화 및 삭제할 수 있습니다.

**Topics**
+ [자체 액세스 키 생성(콘솔)](#Using_CreateAccessKey)
+ [액세스 키 비활성화(콘솔)](#deactivate-access-key-seccreds)
+ [액세스 키 활성화(콘솔)](#activate-access-key-seccreds)
+ [액세스 키 삭제(콘솔)](#delete-access-key-seccreds)

## 자체 액세스 키 생성(콘솔)
<a name="Using_CreateAccessKey"></a>

적절한 권한이 부여된 경우 AWS Management Console을 사용하여 자체 액세스 키를 생성할 수 있습니다.

**자체 액세스 키 생성(콘솔)**

1. AWS 계정 ID나 계정 별칭, IAM 사용자 이름 및 암호를 사용하여 [IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다.
**참고**  
사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 **다른 계정에 로그인(Sign in to a different account)**을 선택하여 기본 로그인 페이지로 돌아갑니다. 여기서 AWS 계정 ID 또는 계정 별칭을 입력하면 계정의 IAM 사용자 로그인 페이지로 리디렉션됩니다.

   AWS 계정 ID를 받으려면 관리자에게 문의하세요.

1. 오른쪽 상단의 탐색 모음에서 사용자 이름을 선택한 다음 **Security credentials**(보안 자격 증명)를 선택합니다.  
![\[AWS Management Console 보안 자격 증명 링크\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **액세스 키** 섹션에서 **액세스 키 생성**을 선택합니다. 이미 두 개의 액세스 키가 있는 경우, 이 버튼은 비활성화되어 있으며 액세스 키를 삭제해야 새로 생성할 수 있습니다.

1. **Access key best practices & alternatives**(액세스 키 모범 사례 및 대안) 페이지에서 사용 사례를 선택하여 장기 액세스 키 생성 방지에 도움이 되는 추가 옵션에 대해 알아봅니다. 사용 사례에 여전히 액세스 키가 필요하다고 판단되면 **Other**(기타), **Next**(다음)를 차례로 선택합니다.

1. (선택 사항) 액세스 키에 대한 설명 태그 값을 설정합니다. 이렇게 하면 IAM 사용자에게 태그 키-값 페어가 추가됩니다. 이는 나중에 액세스 키를 식별하고 업데이트하는 데 도움이 됩니다. 태그 키는 액세스 키 ID로 설정됩니다. 태그 값은 사용자가 지정하는 액세스 키 설명으로 설정됩니다. 모두 마쳤으면 **Create access key**(액세스 키 생성)를 선택합니다.

1. **Retrieve access keys**(액세스 키 검색) 페이지에서 **Show**(표시)를 선택하여 사용자의 비밀 액세스 키 값을 표시하거나 **Download .csv file**(.csv 파일 다운로드)을 선택합니다. 이것이 비밀 액세스 키를 저장할 수 있는 유일한 기회입니다. 비밀 액세스 키를 안전한 위치에 저장한 후 **Done**(완료)을 선택합니다.

## 액세스 키 비활성화(콘솔)
<a name="deactivate-access-key-seccreds"></a>

적절한 권한이 부여된 경우 AWS Management Console을 사용하여 액세스 키를 비활성화할 수 있습니다.

**액세스 키를 비활성화하려면 다음을 수행하세요.**

1. AWS 계정 ID나 계정 별칭, IAM 사용자 이름 및 암호를 사용하여 [IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다.
**참고**  
사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 **다른 계정에 로그인(Sign in to a different account)**을 선택하여 기본 로그인 페이지로 돌아갑니다. 여기서 AWS 계정 ID 또는 계정 별칭을 입력하면 계정의 IAM 사용자 로그인 페이지로 리디렉션됩니다.

   AWS 계정 ID를 받으려면 관리자에게 문의하세요.

1. 오른쪽 상단의 탐색 모음에서 사용자 이름을 선택한 다음 **Security credentials**(보안 자격 증명)를 선택합니다.  
![\[AWS Management Console 보안 자격 증명 링크\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Access keys**(액세스 키) 섹션에서 비활성화하려는 키를 찾은 다음 **Actions**(작업), **Deactivate**(비활성화)를 차례로 선택합니다. 확인 메시지가 나타나면 **Deactivate**(비활성화)를 클릭합니다. 비활성화된 액세스 키는 여전히 두 개의 액세스 키 제한에 포함됩니다.

## 액세스 키 활성화(콘솔)
<a name="activate-access-key-seccreds"></a>

적절한 권한이 부여된 경우 AWS Management Console을 사용하여 액세스 키를 활성화할 수 있습니다.

**액세스 키를 생성하려면 다음을 수행하세요.**

1. AWS 계정 ID나 계정 별칭, IAM 사용자 이름 및 암호를 사용하여 [IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다.
**참고**  
사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 **다른 계정에 로그인(Sign in to a different account)**을 선택하여 기본 로그인 페이지로 돌아갑니다. 여기서 AWS 계정 ID 또는 계정 별칭을 입력하면 계정의 IAM 사용자 로그인 페이지로 리디렉션됩니다.

   AWS 계정 ID를 받으려면 관리자에게 문의하세요.

1. 오른쪽 상단의 탐색 모음에서 사용자 이름을 선택한 다음 **Security credentials**(보안 자격 증명)를 선택합니다.  
![\[AWS Management Console 보안 자격 증명 링크\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Access keys**(액세스 키) 섹션에서 활성화하려는 키를 찾은 다음 **Actions**(작업), **Activate**(활성화)를 차례로 선택합니다.

## 액세스 키 삭제(콘솔)
<a name="delete-access-key-seccreds"></a>

적절한 권한이 부여된 경우 AWS Management Console을 사용하여 액세스 키를 삭제화할 수 있습니다.

**더 이상 필요하지 않은 액세스 키를 삭제하려면 다음을 수행하세요.**

1. AWS 계정 ID나 계정 별칭, IAM 사용자 이름 및 암호를 사용하여 [IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다.
**참고**  
사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 **다른 계정에 로그인(Sign in to a different account)**을 선택하여 기본 로그인 페이지로 돌아갑니다. 여기서 AWS 계정 ID 또는 계정 별칭을 입력하면 계정의 IAM 사용자 로그인 페이지로 리디렉션됩니다.

   AWS 계정 ID를 받으려면 관리자에게 문의하세요.

1. 오른쪽 상단의 탐색 모음에서 사용자 이름을 선택한 다음 **Security credentials**(보안 자격 증명)를 선택합니다.  
![\[AWS Management Console 보안 자격 증명 링크\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/security-credentials-user.shared.console.png)

1. **Access keys**(액세스 키) 섹션에서 삭제하려는 키를 찾은 다음 **Actions**(작업), **Delete**(삭제)를 차례로 선택합니다. 대화 상자의 지침에 따라 먼저 **Deactivate**(비활성화)를 수행한 다음 삭제를 확인합니다. 액세스 키를 영구적으로 삭제하기 전에 액세스 키가 더 이상 사용되고 있지 않은지 확인하는 것이 좋습니다.

# IAM 관리자가 IAM 사용자 액세스 키를 관리하는 방법
<a name="access-keys-admin-managed"></a>

IAM 관리자는 개별 IAM 사용자와 연결된 액세스 키를 생성, 활성화, 비활성화 및 삭제할 수 있습니다. 액세스 키가 있는 계정의 IAM 사용자를 나열하고 특정 액세스 키가 있는 IAM 사용자를 찾을 수도 있습니다.

**Topics**
+ [IAM 사용자의 액세스 키 생성](#admin-create-access-key)
+ [IAM 사용자의 액세스 키 비활성화](#admin-deactivate-access-key)
+ [IAM 사용자의 액세스 키 활성화](#admin-activate-access-key)
+ [IAM 사용자의 액세스 키 삭제](#admin-delete-access-key)
+ [IAM 사용자의 액세스 키 나열](#admin-list-access-key)
+ [IAM 사용자의 액세스 키 나열](#admin-list-access-key)
+ [계정의 사용자에 대한 모든 액세스 키 ID 표시](#admin-list-all-access-keys)
+ [액세스 키 ID를 사용하여 사용자 찾기](#admin-find-user-access-keys)
+ [액세스 키 ID의 최근 사용 찾기](#admin-find-most-recent-use-access-keys)

## IAM 사용자의 액세스 키 생성
<a name="admin-create-access-key"></a>

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에서 **액세스 키 생성**을 선택합니다.

   버튼이 비활성화된 경우 기존 키 중 하나를 삭제해야 새 키를 생성할 수 있습니다.

1. **Access key best practices & alternatives**(액세스 키 모범 사례 및 대안) 페이지에서 모범 사례와 대안을 검토합니다. 사용 사례를 선택하여 장기 액세스 키 생성 방지에 도움이 되는 추가 옵션에 대해 알아봅니다.

1. 사용 사례에 여전히 액세스 키가 필요하다고 판단되면 **Other**(기타), **Next**(다음)를 차례로 선택합니다.

1. **(선택 사항)** **설명 태그 설정** 페이지에서 액세스 키에 설명 태그를 추가하여 액세스 키를 추적할 수 있습니다. **액세스 키 생성**을 선택하세요.

1. **Retrieve access key page**(액세스 키 검색) 페이지에서 **Show**(표시)를 선택하여 사용자의 비밀 액세스 키 값을 표시합니다.

1. 액세스 키 ID 및 보안 액세스 키를 컴퓨터의 안전한 위치에 `.csv` 파일로 저장하려면 **Download .csv file**(.csv 파일 다운로드) 버튼을 선택합니다.
**중요**  
새로 생성된 액세스 키를 보거나 다운로드할 수 있는 유일한 때이며, 이 경우 복구할 수는 없습니다. 액세스 키를 안전하게 유지 관리해야 합니다.

사용자를 위한 액세스 키를 생성하면 해당 키 페어가 기본적으로 활성화되며 사용자는 이 페어를 즉시 사용할 수 있습니다.

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

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

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 

------

## IAM 사용자의 액세스 키 비활성화
<a name="admin-deactivate-access-key"></a>

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에서 **작업** 드롭다운 메뉴를 선택한 다음 **비활성화**를 선택합니다.

1. **비활성화** 대화 상자에서 **비활성화**를 선택하여 액세스 키 비활성화 여부를 확인합니다.

액세스 키가 비활성화된 후에는 API 직접 호출에서 더 이상 사용할 수 없습니다. 필요한 경우 다시 활성화할 수 있습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## IAM 사용자의 액세스 키 활성화
<a name="admin-activate-access-key"></a>

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에서 **작업** 드롭다운 메뉴를 선택한 다음 **활성화**를 선택합니다.

액세스 키가 활성화되면 API 직접 호출에서 사용할 수 있습니다. 필요한 경우 다시 비활성화할 수 있습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 

------

## IAM 사용자의 액세스 키 삭제
<a name="admin-delete-access-key"></a>

액세스 키가 비활성화된 후 더 이상 필요하지 않으면 삭제하세요.

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에서 비활성 액세스 키에 대한 **작업** 드롭다운 메뉴를 선택한 다음 **삭제**를 선택합니다.

1. **삭제** 대화 상자에서 텍스트 입력 필드에 액세스 키 ID를 입력한 다음 **삭제**를 선택하여 액세스 키 삭제 여부를 확인합니다.

액세스 키가 삭제된 후에는 복구할 수 없습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html) 

------

## IAM 사용자의 액세스 키 나열
<a name="admin-list-access-key"></a>

IAM 사용자와 연결된 액세스 키 ID의 목록을 볼 수 있습니다.

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에는 사용자의 액세스 키가 나열됩니다.

각 IAM 사용자는 두 개의 액세스 키를 가질 수 있습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## IAM 사용자의 액세스 키 나열
<a name="admin-list-access-key"></a>

IAM 사용자와 연결된 액세스 키 ID의 목록을 볼 수 있습니다.

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. **보안 자격 증명** 탭의 **액세스 키** 섹션에는 표시된 각 키의 상태를 포함하여 사용자의 액세스 키 ID가 나열됩니다.
**참고**  
사용자의 액세스 키 ID만 표시됩니다. 비밀 액세스 키는 키를 만들 때만 가져올 수 있습니다.

각 IAM 사용자는 두 개의 액세스 키를 가질 수 있습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 

------

## 계정의 사용자에 대한 모든 액세스 키 ID 표시
<a name="admin-list-all-access-keys"></a>

AWS 계정에서 사용자의 액세스 키 ID 목록을 볼 수 있습니다.

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

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

1. 필요할 경우 다음 단계를 통해 사용자 테이블에 **액세스 키 ID** 열을 추가합니다.

   1. 테이블 위 맨 오른쪽에서 **기본 설정** 아이콘(![\[Preferences icon\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-settings-icon.console.png))을 선택합니다.

   1. **기본 설정** 대화 상자의 **표시되는 열 선택**에서 **액세스 키 ID**를 켭니다.

   1. **확인**을 선택하여 사용자 목록으로 돌아갑니다. 액세스 키 ID를 포함하도록 목록이 업데이트됩니다.

1. **액세스 키 ID** 열에는 각 액세스 키의 상태와 ID가 표시됩니다(예: **`Active - AKIAIOSFODNN7EXAMPLE`** 또는 **`Inactive - AKIAI44QH8DHBEXAMPLE`**).

   이 정보를 사용하여 한 개 또는 두 개의 액세스 키를 가진 사용자의 액세스 키 ID를 보고 복사할 수 있습니다. 액세스 키가 없는 사용자는 이 열에 **`-`** 기호가 표시됩니다.
**참고**  
비밀 액세스 키는 키를 만들 때만 가져올 수 있습니다.

각 IAM 사용자는 두 개의 액세스 키를 가질 수 있습니다.

------

## 액세스 키 ID를 사용하여 사용자 찾기
<a name="admin-find-user-access-keys"></a>

AWS 계정에서 액세스 키 ID를 사용하여 사용자를 찾을 수 있습니다.

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

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

1. 탐색 창의 검색 상자에 **액세스 키 ID**(예: AKIAI44QH8DHBEXAMPLE)를 입력하세요.

1. 액세스 키 ID가 연결된 IAM 사용자가 탐색 창에 나타납니다. 사용자 이름을 선택하여 사용자 세부 정보 페이지로 이동합니다.

------

## 액세스 키 ID의 최근 사용 찾기
<a name="admin-find-most-recent-use-access-keys"></a>

액세스 키의 최근 사용은 IAM 사용자 페이지의 사용자 목록에 있는 사용자 세부 정보 페이지에 표시되며, 자격 증명 보고서의 일부분입니다.

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

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

1. 사용자 목록에서 **마지막으로 사용한 액세스 키** 열을 확인하세요.

   열이 표시되지 않으면 **기본 설정** 아이콘(![\[Preferences icon\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-settings-icon.console.png))을 선택하고 **표시되는 열 선택**에서 **마지막으로 사용한 액세스 키**를 켜면 열이 표시됩니다.

1. (선택 사항) 탐색 창의 **액세스 보고서**에서 **자격 증명 보고서**를 선택하여 계정의 모든 IAM 사용자에 대해 마지막으로 사용한 액세스 키 정보가 포함된 보고서를 다운로드합니다.

1. (선택 사항) IAM 사용자를 선택하여 사용자 세부 정보를 확인합니다. **요약** 섹션에는 액세스 키 ID, 상태 및 마지막으로 사용된 시간이 포함되어 있습니다.

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

다음 명령 실행:
+ [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

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

다음 작업을 직접 호출:
+ [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) 

------

# 액세스 키 업데이트
<a name="id-credentials-access-keys-update"></a>

보안 [모범 사례](best-practices.md#update-access-keys)로, 필요할 때(예: 직원 퇴사) IAM 사용자 액세스 키를 업데이트하는 것이 좋습니다. 필요한 권한이 부여되면 IAM 사용자는 자신의 액세스 키를 업데이트할 수 있습니다.

IAM 사용자에게 자신의 액세스 키를 업데이트할 수 있는 권한을 부여하는 방법에 대한 자세한 내용은 [AWS: IAM 사용자가 보안 인증 페이지에서 자신의 암호, 액세스 키 및 SSH 퍼블릭 키를 관리할 수 있도록 허용](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md) 섹션을 참조하세요. 모든 IAM 사용자가 주기적으로 암호를 업데이트하도록 요구하는 암호 정책(빈도 포함)을 계정에 적용할 수도 있습니다. 자세한 내용은 [IAM 사용자의 계정 암호 정책 설정](id_credentials_passwords_account-policy.md) 섹션을 참조하세요.

**참고**  
보안 액세스 키를 분실한 경우 액세스 키를 삭제하고 새 키를 생성해야 합니다. 시크릿 액세스 키는 생성할 때만 가져올 수 있습니다. 이 절차를 사용하여 손실된 액세스 키를 비활성화하고, 새 자격 증명으로 바꿉니다.

**Topics**
+ [IAM 사용자 액세스 키 업데이트(콘솔)](#rotating_access_keys_console)
+ [액세스 키 업데이트(AWS CLI)](#rotating_access_keys_cli)
+ [액세스 키 업데이트(AWS API)](#rotating_access_keys_api)

## IAM 사용자 액세스 키 업데이트(콘솔)
<a name="rotating_access_keys_console"></a>

AWS Management Console에서 액세스 키를 업데이트할 수 있습니다.

**애플리케이션을 중단하지 않고 IAM 사용자의 액세스 키를 업데이트하려면(콘솔)**

1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만듭니다.

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

   1. 탐색 창에서 **사용자**를 선택합니다.

   1. 해당 사용자의 이름을 선택한 후 **보안 자격 증명** 탭을 선택합니다.

   1. **액세스 키** 섹션에서 **액세스 키 생성**을 선택합니다. **Access key best practices & alternatives**(액세스 키 모범 사례 및 대안) 페이지에서 **Other**(기타), **Next**(다음)를 차례로 선택합니다.

   1. (선택 사항) 액세스 키에 대한 설명 태그 값을 설정하여 이 IAM 사용자에게 태그 키-값 페어를 추가합니다. 이는 나중에 액세스 키를 식별하고 업데이트하는 데 도움이 됩니다. 태그 키는 액세스 키 ID로 설정됩니다. 태그 값은 사용자가 지정하는 액세스 키 설명으로 설정됩니다. 모두 마쳤으면 **Create access key**(액세스 키 생성)를 선택합니다.

   1. **Retrieve access keys**(액세스 키 검색) 페이지에서 **Show**(표시)를 선택하여 사용자의 비밀 액세스 키 값을 표시하거나 **Download .csv file**(.csv 파일 다운로드)을 선택합니다. 이것이 비밀 액세스 키를 저장할 수 있는 유일한 기회입니다. 비밀 액세스 키를 안전한 위치에 저장한 후 **Done**(완료)을 선택합니다.

      사용자를 위한 액세스 키를 생성하면 해당 키 페어가 기본적으로 활성화되며 사용자는 이 페어를 즉시 사용할 수 있습니다. 따라서 사용자에게 두 개의 활성 액세스 키가 생깁니다.

1. 새 액세스 키를 사용하도록 모든 애플리케이션과 도구를 업데이트합니다.

1. <a name="id_credentials_access-keys-key-still-in-use"></a>가장 오래된 액세스 키의 **Last used**(마지막 사용) 정보를 검토하여 최초 액세스 키가 아직 사용 중인지 확인합니다. 한 가지 접근 방식은 며칠을 기다린 다음 계속하기 전에 사용된 적이 있는 기존 액세스 키가 있는지 확인하는 것입니다.

1. **Last used**(마지막 사용) 정보에 오래된 키가 사용된 적이 없다고 표시되더라도 최초 액세스 키를 바로 삭제하지 않는 것이 좋습니다. 대신 **Actions**(작업), **Deactivate**(비활성화)를 차례로 선택하여 첫 번째 액세스 키를 비활성화합니다.

1. 새 액세스 키만 사용하여 애플리케이션이 작동 중인지 확인합니다. 원래 액세스 키를 계속 사용하는 어떤 애플리케이션도 AWS 리소스에 더 이상 액세스할 수 없기 때문에 이 시점에 작업을 중단합니다. 그러한 애플리케이션 또는 도구를 찾는다면 최초 액세스 키를 다시 활성화할 수 있습니다. 그런 다음 [Step 3](#id_credentials_access-keys-key-still-in-use) 단원으로 돌아가 이 애플리케이션을 업데이트하여 새 키를 사용하세요.

1. 일정 기간 기다린 후 모든 애플리케이션과 도구가 업데이트되었는지 확인한 뒤에 최초 액세스 키를 삭제할 수 있습니다:

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

   1. 탐색 창에서 **사용자**를 선택합니다.

   1. 해당 사용자의 이름을 선택한 후 **보안 자격 증명** 탭을 선택합니다.

   1. **Access keys**(액세스 키) 섹션에서 삭제하려는 액세스 키에 대해 **Actions**(작업), **Delete**(삭제)를 차례로 선택합니다. 대화 상자의 지침에 따라 먼저 **Deactivate**(비활성화)를 수행한 다음 삭제를 확인합니다.

**업데이트하거나 삭제해야 하는 액세스 키를 결정하려면(콘솔)**

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

1. 탐색 창에서 **사용자**를 선택합니다.

1. 필요할 경우 다음 단계를 통해 사용자 테이블에 **Access key age(액세스 키 수명)** 열을 추가합니다.

   1. 테이블 위 맨 오른쪽에서 설정 아이콘(![\[Settings icon\]](http://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/images/console-settings-icon.console.png))을 선택합니다.

   1. **Manage Columns(열 관리)**에서 **Access key age(액세스 키 수명)**을 선택합니다.

   1. **닫기**를 선택하여 사용자 목록으로 돌아갑니다.

1. **Access key age(액세스 키 수명)** 열에는 가장 오래된 활성 액세스 키가 생성된 이후로 경과한 일수가 표시됩니다. 이 정보를 사용하여 업데이트하거나 삭제해야 하는 액세스 키를 소유한 사용자를 찾을 수 있습니다. 액세스 키가 없는 사용자는 이 열에 **없음**이라고 표시됩니다.

## 액세스 키 업데이트(AWS CLI)
<a name="rotating_access_keys_cli"></a>

AWS Command Line Interface에서 액세스 키를 업데이트할 수 있습니다.

**애플리케이션을 중단하지 않고 액세스 키를 업데이트하려면(AWS CLI)**

1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만들면 이 키도 기본적으로 활성 상태가 됩니다. 다음 명령을 실행합니다.
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)

     따라서 사용자에게 두 개의 활성 액세스 키가 생깁니다.

1. <a name="step-update-apps"></a>새 액세스 키를 사용하도록 모든 애플리케이션과 도구를 업데이트합니다.

1. <a name="step-determine-use"></a>다음 명령을 사용하여 최초 액세스 키가 아직 사용 중인지 확인합니다.
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html)

   한 가지 접근 방식은 며칠을 기다린 다음 계속하기 전에 사용된 적이 있는 기존 액세스 키가 있는지 확인하는 것입니다.

1. [Step 3](#step-determine-use) 단계를 통해 기존 키를 사용한 적이 없다는 것이 밝혀진 경우 최초의 액세스 키를 즉시 삭제하지 말 것을 권장합니다. 그 대신 다음 명령을 사용하여 최초 액세스 키의 상태를 `Inactive`로 변경하세요.
   +  [https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/update-access-key.html)

1. 새 액세스 키만 사용하여 애플리케이션이 작동 중인지 확인합니다. 원래 액세스 키를 계속 사용하는 어떤 애플리케이션도 AWS 리소스에 더 이상 액세스할 수 없기 때문에 이 시점에 작업을 중단합니다. 그러한 애플리케이션 또는 도구를 찾는다면 그 상태를 `Active`로 되돌려 최초 액세스 키를 다시 활성화할 수 있습니다. 그런 다음 [Step 2](#step-update-apps) 단계로 돌아가 이 애플리케이션을 업데이트해 새 키를 사용하세요.

1. 일정 기간 기다린 후 모든 애플리케이션과 도구가 업데이트되었는지 확인한 뒤에 다음 명령을 사용하여 최초 액세스 키를 삭제할 수 있습니다.
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html)

## 액세스 키 업데이트(AWS API)
<a name="rotating_access_keys_api"></a>

AWS API를 사용하여 액세스 키를 업데이트할 수 있습니다.

**애플리케이션을 중단하지 않고 액세스 키를 업데이트하려면(AWS API)**

1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만들면 이 키도 기본적으로 활성 상태가 됩니다. 다음 작업을 직접 호출:
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)

     따라서 사용자에게 두 개의 활성 액세스 키가 생깁니다.

1. <a name="step-update-apps-2"></a>새 액세스 키를 사용하도록 모든 애플리케이션과 도구를 업데이트합니다.

1. <a name="step-determine-use-2"></a>다음 연산을 호출하여 최초 액세스 키가 아직 사용 중인지 확인합니다.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)

   한 가지 접근 방식은 며칠을 기다린 다음 계속하기 전에 사용된 적이 있는 기존 액세스 키가 있는지 확인하는 것입니다.

1. [Step 3](#step-determine-use-2) 단계를 통해 기존 키를 사용한 적이 없다는 것이 밝혀진 경우 최초의 액세스 키를 즉시 삭제하지 말 것을 권장합니다. 그 대신 다음 연산을 호출하여 최초 액세스 키의 상태를 `Inactive`로 변경하세요.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html)

1. 새 액세스 키만 사용하여 애플리케이션이 작동 중인지 확인합니다. 원래 액세스 키를 계속 사용하는 어떤 애플리케이션도 AWS 리소스에 더 이상 액세스할 수 없기 때문에 이 시점에 작업을 중단합니다. 그러한 애플리케이션 또는 도구를 찾는다면 그 상태를 `Active`로 되돌려 최초 액세스 키를 다시 활성화할 수 있습니다. 그런 다음 [Step 2](#step-update-apps-2) 단계로 돌아가 이 애플리케이션을 업데이트해 새 키를 사용하세요.

1. 일정 기간 기다린 후 모든 애플리케이션과 도구가 업데이트되었는지 확인한 뒤에 다음 연산을 호출하여 최초 액세스 키를 삭제할 수 있습니다.
   + [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)

# 액세스 키 보안
<a name="securing_access-keys"></a>

액세스 키를 보유한 사람은 누구든지 AWS 리소스에 대해 사용자와 동일한 권한으로 액세스할 수 있습니다. 따라서 AWS에서는 사용자의 액세스 키를 보호하기 위해 최선을 다하며, 사용자도 [Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/)에 부합하도록 노력해야 합니다.

액세스 키를 보호하는 데 도움이 되는 지침을 보려면 다음 섹션을 확장하세요.

**참고**  
사용자 조직의 보안 요구 사항과 정책은 이 주제에 설명된 것과 다를 수 있습니다. 여기에 제공된 제안 사항은 일반적인 지침입니다.

## AWS 계정 루트 사용자 액세스 키 제거(또는 생성하지 않음)
<a name="root-password"></a>

**계정을 보호하는 가장 좋은 방법 중 하나는 AWS 계정 루트 사용자에 대한 액세스 키를 보유하지 않는 것입니다.** 매우 드물지만 루트 사용자 액세스 키가 필요한 경우를 제외하고는 액세스 키를 생성하지 않는 것이 좋습니다. 대신 일상적인 관리 작업을 위한 관리 사용자를 AWS IAM Identity Center에서 생성합니다. IAM Identity Center에서 관리 사용자를 생성하는 방법에 대한 자세한 내용은 *IAM Identity Center 사용 설명서*의 [Getting started](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html)를 참조하세요.

계정에 대한 루트 사용자 액세스 키가 이미 있는 경우 해당 액세스 키(있는 경우)를 현재 사용 중인 애플리케이션의 위치를 확인하고 루트 사용자 액세스 키를 IAM 사용자 액세스 키로 교체하는 것이 좋습니다. 그런 다음 루트 사용자 액세스 키를 비활성화하고 제거합니다. 액세스 키 업데이트 방법에 대한 자세한 내용은 [액세스 키 업데이트](id-credentials-access-keys-update.md) 섹션을 참조하세요.



## 장기 액세스 키 대신 임시 보안 인증(IAM 역할) 사용
<a name="use-roles"></a>

대부분의 시나리오에서는 IAM 사용자와 같이 만료되지 않는 장기 액세스 키가 필요하지 않습니다. 대신, IAM 역할을 만들고 임시 보안 인증 정보를 생성할 수 있습니다. 임시 보안 자격 증명은 액세스 키 ID와 비밀 액세스 키로 구성되지만, 자격 증명이 만료되는 시간을 나타내는 보안 토큰을 포함합니다.

장기 액세스 키(IAM 사용자 및 루트 사용자에 연결된 액세스 키)는 수동으로 취소할 때까지 유효하게 유지됩니다. 하지만 IAM 역할과 AWS Security Token Service의 기타 기능을 통해 얻는 임시 보안 인증은 단기간 내에 만료됩니다. 임시 보안 자격 증명을 사용하면 자격 증명이 실수로 노출된 경우에 위험을 줄일 수 있습니다.

다음 시나리오에서는 IAM 역할과 임시 보안 인증을 사용합니다.
+ **Amazon EC2 인스턴스에서 실행 중인 애플리케이션 또는 AWS CLI 스크립트가 있는 경우.** 애플리케이션에서 액세스 키를 직접 사용하지 않도록 합니다. 액세스 키를 애플리케이션에 전달하거나, 애플리케이션에 포함하거나, 애플리케이션에서 소스로부터 액세스 키를 읽지 않도록 합니다. 대신, 애플리케이션에 대한 적절한 권한을 가진 IAM 역할을 정의하고 [EC2의 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다. 그러면 IAM 역할이 Amazon EC2 인스턴스에 연결됩니다. 이 방법을 통해 애플리케이션은 AWS에 대한 프로그래밍 방식의 직접 호출에 사용할 수 있는 임시 보안 인증을 얻을 수 있습니다. AWS SDK 및 AWS Command Line Interface(AWS CLI)에서는 역할에서 임시 보안 인증을 자동으로 가져올 수 있습니다.
+ **교차 계정 액세스 권한을 부여해야 합니다.** IAM 역할을 사용하여 계정 사이에 신뢰를 구축한 다음, 한 계정의 사용자에게 신뢰할 수 있는 계정에 액세스할 수 있는 제한된 권한을 부여합니다. 자세한 내용은 [튜토리얼: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임](tutorial_cross-account-with-roles.md) 섹션을 참조하세요.
+ **모바일 앱을 사용합니다.** 암호화된 스토리지를 포함하여 앱에 액세스 키를 포함하지 않도록 합니다. 대신, [Amazon Cognito](https://aws.amazon.com/cognito/)를 사용하여 앱에서 사용자 자격 증명을 관리합니다. 이 서비스를 사용하면 Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 호환 자격 증명 공급자를 통해 사용자를 인증할 수 있습니다. 그런 다음 Amazon Cognito 보안 인증 공급자를 사용하여 앱에서 AWS에 요청하는 데 사용하는 보안 인증을 관리할 수 있습니다.
+ **AWS에 연동하려고 하고 조직에서 SAML 2.0을 지원합니다.** SAML 2.0을 지원하는 자격 증명 공급자가 있는 조직에서 작업하는 경우 SAML을 사용하도록 공급자를 구성합니다. SAML을 사용하여 인증 정보를 AWS와 교환하고 임시 보안 자격 증명 세트를 다시 가져올 수 있습니다. 자세한 내용은 [SAML 2.0 연동](id_roles_providers_saml.md) 섹션을 참조하세요.
+ **AWS에 연동하려고 하고 조직에 온프레미스 자격 증명 스토어가 있습니다.** 사용자가 조직 내부에서 인증할 수 있는 경우 AWS 리소스에 액세스하기 위한 임시 보안 자격 증명을 발급하는 애플리케이션을 작성할 수 있습니다. 자세한 내용은 [AWS 콘솔에 대한 사용자 지정 ID 브로커 액세스 활성화](id_roles_providers_enable-console-custom-url.md) 섹션을 참조하세요.
+ **IAM 정책의 조건을 사용하여 예상 네트워크에서만 액세스를 허용합니다.** 퍼블릭 IP 주소 또는 가상 프라이빗 클라우드(VPC)와 같은 예상 네트워크만 지정하고 허용하는 [조건으로 IAM 정책](reference_policies_elements_condition_operators.md)을 구현하여 액세스 키의 사용 위치와 사용 방법을 제한할 수 있습니다. 이렇게 하면 액세스 키는 예상되고 허용 가능한 네트워크에서만 사용할 수 있습니다.

**참고**  
AWS 리소스에 프로그래밍 방식으로 액세스해야 하는 애플리케이션에서 Amazon EC2 인스턴스를 사용하고 있나요? 그렇다면 [EC2용 IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)을 사용하세요.

## IAM 사용자 액세스 키의 올바른 관리
<a name="iam-user-access-keys"></a>

AWS에 대한 프로그래밍 방식 액세스를 위해 액세스 키를 생성해야 하는 경우 IAM 사용자를 위한 액세스 키를 생성하여 필요한 권한만 사용자에게 부여합니다.

IAM 사용자 액세스 키를 보호하려면 다음 예방 조치를 준수합니다.
+ **액세스 키를 코드에 직접 포함하지 마십시오.** [AWS SDK](https://aws.amazon.com/tools/#sdk) 및 [AWS 명령줄 도구](https://aws.amazon.com/tools/#cli)를 사용하여 액세스 키를 알려진 위치에 보관합니다. 그러면 코드에 포함할 필요가 없습니다.

  액세스 키를 다음 중 한 곳에 보관하십시오.
  + **AWS 자격 증명 파일.** AWS SDK 및 AWS CLI에서는 AWS 자격 증명 파일에 저장된 자격 증명을 자동으로 사용합니다.

    AWS 자격 증명 파일을 사용하는 방법에 대한 자세한 내용은 SDK 설명서를 참조하십시오. 예를 들어, *AWS SDK for Java 개발자 안내서*의 [Set AWS Credentials and Region](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html) 및 *AWS Command Line Interface 사용 설명서*의 [구성 및 보안 인증 파일](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)을 참조하세요.

    AWS SDK for .NET 및 AWS Tools for Windows PowerShell에 대한 보안 인증을 저장하려면 SDK 스토어를 사용하는 것이 좋습니다. 자세한 내용은 *AWS SDK for .NET 개발자 안내서*의 [Using the SDK Store](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html)를 참조하세요.
  + **환경 변수.** 다중 테넌트 시스템에서 시스템 환경 변수가 아닌 사용자 환경 변수를 선택합니다.

    환경 변수를 사용하여 보안 인증을 저장하는 방법에 대한 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [환경 변수](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)를 참조하세요.
+ **애플리케이션마다 서로 다른 액세스 키를 사용합니다.** 그러면 권한을 격리하고 액세스 키가 노출된 경우 개별 애플리케이션에 대해 액세스 키를 취소할 수 있습니다. 또한 애플리케이션별로 별도의 액세스 키를 사용하면 [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 로그 파일에 개별 항목이 생성됩니다. 이 구성을 사용하면 특정 작업을 수행한 애플리케이션을 쉽게 확인할 수 있습니다.
+ **필요한 경우 액세스 키를 업데이트합니다.** 액세스 키가 손상될 위험이 있는 경우 액세스 키를 업데이트하고 이전 액세스 키를 삭제합니다. 자세한 내용은 [액세스 키 업데이트](id-credentials-access-keys-update.md) 섹션을 참조하세요.
+ **미사용 액세스 키를 제거합니다.** 사용자가 조직을 떠나는 경우 해당 IAM 사용자를 제거합니다. 그러면 사용자는 해당 리소스에 더 이상 액세스할 수 없습니다. 액세스 키가 마지막으로 사용된 시간을 확인하려면 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html) API(AWS CLI 명령: [https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-access-key-last-used.html))를 사용합니다.
+ **가장 민감한 API 작업에 대해 임시 보안 인증을 사용하고 멀티 팩터 인증을 구성합니다.** 사용자가 호출할 수 있는 API 작업을 IAM 정책을 사용해 지정할 수 있습니다. 어떤 경우에는 특히 민감한 작업을 수행하도록 허용하기 전에 AWS MFA로 사용자를 인증하도록 요구하는 추가 보안이 필요할 수 있습니다. 예를 들어 사용자가 Amazon EC2 `RunInstances`, `DescribeInstances` 및 `StopInstances` 작업을 수행하도록 허용하는 정책이 있을 수 있습니다. 하지만 `TerminateInstances`처럼 안전하지 않은 작업의 경우 이를 제한해 사용자가 AWS MFA 디바이스에서 인증할 때만 작업을 수행하도록 해야 할 필요가 있을 수 있습니다. 자세한 내용은 [MFA를 통한 보안 API 액세스](id_credentials_mfa_configure-api-require.md) 섹션을 참조하세요.

## AWS 액세스 키를 사용하여 모바일 앱 액세스
<a name="access-keys-mobile-app"></a>

AWS 모바일 앱을 사용하여 일부 AWS 서비스 및 기능에 액세스할 수 있습니다. 모바일 앱을 사용하여 이동 중에도 인시던트 대응을 지원할 수 있습니다. 자세한 내용을 확인하고 앱을 다운로드하려면 [AWS 콘솔 모바일 애플리케이션](https://aws.amazon.com/console/mobile/)을 참조하십시오.

콘솔 암호 또는 액세스 키를 사용하여 모바일 앱에 로그인할 수 있습니다. 모범 사례로, 루트 사용자 액세스 키는 사용하지 않도록 합니다. 대신 모바일 디바이스에서 암호 또는 생체 인식 잠금을 사용하는 방법과 함께 모바일 앱을 사용하여 AWS 리소스 관리를 위한 특별히 IAM 사용자를 생성합니다. 모바일 디바이스를 분실한 경우 IAM 사용자의 액세스 권한을 제거할 수 있습니다.

**액세스 키를 사용하여 로그인하려면(모바일 앱)**

1. 모바일 디바이스에서 모바일 앱을 엽니다.

1. 디바이스에 ID를 처음 추가하는 경우 **Add an identity(ID 추가)**를 선택한 다음 **Access keys(액세스 키)**를 선택합니다.

   다른 ID를 사용하여 이미 로그인한 경우 메뉴 아이콘을 선택하고 **Switch identity(ID 전환)**를 선택합니다. 그러고 나서 **Sign in as a different identity(다른 ID로 로그인)**을 선택한 다음 **Access keys(액세스 키)**를 선택합니다.

1. **Access keys(액세스 키)** 페이지에 정보를 입력합니다.
   + **Access key ID** – 액세스 키 ID를 입력합니다.
   + **Secret access key** - 비밀 액세스 키를 입력합니다.
   + **Identity name** - 모바일 앱에 표시할 ID 이름을 입력합니다. IAM 사용자 이름과 일치하지 않아도 됩니다.
   + **Identity PIN** - 이후 로그인에 사용할 개인 식별 번호(PIN)를 생성합니다.
**참고**  
AWS 모바일 앱에 생체 인식을 활성화하면 PIN 대신 확인을 위해 지문 또는 안면 인식을 사용하라는 메시지가 표시됩니다. 생체 인식에 실패하면 PIN을 입력하라는 메시지가 대신 표시될 수 있습니다.

1. **Verify and add keys(확인하고 키 추가)**를 선택합니다.

   이제 모바일 앱을 사용하여 일부 리소스에 액세스할 수 있습니다.

## 관련 정보
<a name="more-resources"></a>

다음 주제에서는 액세스 키를 사용하도록 AWS SDK 및 AWS CLI를 설정하는 지침을 제공합니다.
+ *AWS SDK for Java 개발자 안내서*의 [Set AWS credentials and Region](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-credentials.html)
+ *AWS SDK for .NET 개발자 안내서*의 [Using the SDK Store](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sdk-store.html)
+ *AWS SDK for PHP 개발자 안내서*의 [Providing Credentials to the SDK](https://docs.aws.amazon.com/aws-sdk-php/v2/guide/credentials.html)
+ Boto 3(Python용 AWS SDK) 문서의 [Configuration](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration)
+ *AWS Tools for Windows PowerShell 사용 설명서*의 [AWS 보안 인증 사용](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html) 
+ *AWS Command Line Interface 사용 설명서*의 [구성 및 보안 인증 파일](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 
+ *AWS SDK for .NET 개발자 안내서*의 [Granting access using an IAM role](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-hosm.html)
+ *AWS SDK for Java 2.x*의 [Configure IAM roles for Amazon EC2](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html)

## 콘솔 액세스에 액세스 키 및 비밀 키 자격 증명 사용
<a name="console-access-security-keys"></a>

AWS CLI뿐만 아니라 AWS Management Console에 직접 액세스하는 데 액세스 키 및 비밀 키 자격 증명을 사용할 수 있습니다. AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) API 직접 호출을 사용하면 가능합니다. `GetFederationToken`에서 제공하는 임시 자격 증명과 토큰을 사용하여 콘솔 URL을 구성하면 IAM 보안 주체가 콘솔에 액세스할 수 있습니다. 자세한 내용은 [AWS 콘솔에 대한 사용자 지정 ID 브로커 액세스 활성화](id_roles_providers_enable-console-custom-url.md) 섹션을 참조하세요.

MFA가 활성화된 상태에서 IAM 또는 루트 사용자 자격 증명을 사용하여 콘솔에 직접 로그인하는 경우 MFA가 필요합니다. 하지만 위에서 설명하는 방법(`GetFederationToken`에서 임시 자격 증명 사용)을 사용하는 경우 MFA가 필요하지 않습니다.



## 액세스 키 감사
<a name="Using_access-keys-audit"></a>

코드에서 AWS 액세스 키를 살펴보면 키가 자신의 계정에 속한 것인지 알 수 있습니다. 액세스 키 ID는 [https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-access-key-info.html) AWS CLI 명령 또는 [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html) AWS API 작업을 사용해 전달할 수 있습니다.

AWS CLI 및 AWS API 작업은 액세스 키가 속한 AWS 계정의 ID를 반환합니다. `AKIA`로 시작하는 액세스 키 ID는 IAM 사용자 또는 AWS 계정 루트 사용자을 위한 장기 자격 증명입니다. `ASIA`로 시작하는 액세스 키 ID는 AWS STS 작업으로 생성된 임시 자격 증명입니다. 응답으로 반환되는 계정이 자신의 소유라면 루트 사용자로 로그인하여 루트 사용자 액세스 키를 살펴볼 수 있습니다. 그런 다음 [자격 증명 보고서](id_credentials_getting-report.md)를 가져와서 키를 소유하고 있는 IAM 사용자를 알아볼 수 있습니다. `ASIA` 액세스 키의 경우 누가 임시 자격 증명을 요청했는지 알아보려면 CloudTrail 로그에서 AWS STS 이벤트를 확인하세요.

보안을 위해 [AWS CloudTrail 로그를 검토](cloudtrail-integration.md#cloudtrail-integration_signin-tempcreds)하여 AWS에서 누가 작업을 수행했는지 확인할 수 있습니다. 역할 신뢰 정책에서 `sts:SourceIdentity` 조건 키를 사용하여 사용자가 역할을 수임할 때 자격 증명을 지정하도록 요구할 수 있습니다. 예를 들어 IAM 사용자가 자신의 사용자 이름을 소스 자격 증명으로 지정하도록 요구할 수 있습니다. 이를 통해 AWS에서 특정 작업을 수행한 사용자를 확인할 수 있습니다. 자세한 내용은 [`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity) 섹션을 참조하세요.

이 작업은 액세스 키의 상태를 표시하지 않지만 키는 활성, 비활성 또는 삭제된 상태일 수 있습니다. 활성 키에도 작업을 실행할 수 있는 권한이 없는 경우도 있습니다. 삭제된 액세스 키를 입력하면 키가 존재하지 않는다는 오류 메시지가 반환될 수 있습니다.