IAM 사용자의 액세스 키 관리 - AWS Identity and Access Management

IAM 사용자의 액세스 키 관리

중요

모범 사례는 액세스 키와 같은 장기 보안 인증을 생성하는 대신 임시 보안 인증(예: IAM 역할)을 사용하는 것입니다. 액세스 키를 생성하기 전에 장기 액세스 키의 대안을 검토합니다.

액세스 키는 IAM 사용자 또는 AWS 계정 루트 사용자에 대한 장기 보안 인증입니다. 액세스 키를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 요청에 서명할 수 있습니다(직접 또는 AWS SDK를 사용하여). 자세한 내용은 AWS API 요청에 서명 단원을 참조하십시오.

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

액세스 키 페어를 생성할 때는 액세스 키 ID와 보안 액세스 키를 안전한 위치에 저장합니다. 보안 액세스 키는 생성할 때만 사용할 수 있습니다. 보안 액세스 키를 분실한 경우 액세스 키를 삭제하고 새 키를 생성해야 합니다. 자세한 내용은 분실하거나 잊어버린 AWS 암호 또는 액세스 키 재설정을(를) 참조하세요.

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

중요

액세스 키를 안전하게 관리하세요. 계정 식별자를 찾는 데 도움이 되더라도 액세스 키를 권한 없는 당사자에게 제공하지 마세요. 이로 인해 다른 사람에게 계정에 대한 영구 액세스를 제공하게 될 수 있습니다.

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

액세스 키를 관리하는 데 필요한 권한

참고

iam:TagUser은 액세스 키에 설명을 추가하고 편집할 수 있는 선택적 권한입니다. 자세한 내용은 IAM 사용자 태깅 단원을 참조하세요.

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

{ "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 사용자에 대한 액세스 키를 업데이트하려면 다음 정책에 따른 권한이 있어야 합니다.

{ "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}" } ] }

액세스 키 관리(콘솔)

AWS Management Console을 사용하여 IAM 사용자의 액세스 키를 관리할 수 있습니다.

자신의 액세스 키를 생성, 수정 또는 삭제하려면(콘솔)
  1. AWS 계정 ID나 계정 별칭, IAM 사용자 이름 및 암호를 사용하여 IAM 콘솔에 로그인합니다.

    참고

    사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 이전에 다른 사용자로 로그인한 경우 페이지 하단 근처의 다른 계정에 로그인(Sign in to a different account)을 선택하여 기본 로그인 페이지로 돌아갑니다. 여기서 AWS 계정 ID 또는 계정 별칭을 입력하면 계정의 IAM 사용자 로그인 페이지로 리디렉션됩니다.

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

  2. 오른쪽 상단의 탐색 모음에서 사용자 이름을 선택한 다음 Security credentials(보안 자격 증명)를 선택합니다.

    
                  AWS Management Console 보안 자격 증명 링크
    참고

    보안 인증 정보 탭은 AWS 계정 루트 사용자에 대해서만 표시됩니다. IAM 사용자는 탐색 창에서 액세스 키를 관리할 수 있습니다.

    1. 사용자를 선택하세요.

    2. 사용자 목록에서 IAM 사용자 이름을 선택합니다.

    3. [Security Credentials] 탭을 선택합니다. 액세스 키에서 액세스 키 생성을 선택합니다.

다음 중 하나를 수행합니다.

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

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

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

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

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

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

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

다른 IAM 사용자의 액세스 키를 생성, 수정 또는 삭제하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  3. 액세스 키를 관리하려는 사용자 이름을 선택한 다음 보안 자격 증명 탭을 선택합니다.

  4. 액세스 키 섹션에서 다음 작업을 수행합니다.

    • 액세스 키를 생성하려면 Create access key(액세스 키 생성)을 선택합니다. 버튼이 비활성화된 경우 기존 키 중 하나를 삭제해야 새 키를 생성할 수 있습니다. Access key best practices & alternatives(액세스 키 모범 사례 및 대안) 페이지에서 모범 사례와 대안을 검토합니다. 사용 사례를 선택하여 장기 액세스 키 생성 방지에 도움이 되는 추가 옵션에 대해 알아봅니다. 사용 사례에 여전히 액세스 키가 필요하다고 판단되면 Other(기타), Next(다음)를 차례로 선택합니다. Retrieve access key page(액세스 키 검색) 페이지에서 Show(표시)를 선택하여 사용자의 비밀 액세스 키 값을 표시합니다. 액세스 키 ID 및 보안 액세스 키를 컴퓨터의 안전한 위치에 .csv 파일로 저장하려면 Download .csv file(.csv 파일 다운로드) 버튼을 선택합니다. 사용자를 위한 액세스 키를 생성하면 해당 키 페어가 기본적으로 활성화되며 사용자는 이 페어를 즉시 사용할 수 있습니다.

    • 활성 액세스 키를 비활성화하려면 Actions(작업), Deactivate(비활성화)를 차례로 선택합니다.

    • 비활성 액세스 키를 활성화하려면 Actions(작업), Activate(활성화)를 차례로 선택합니다.

    • 액세스 키를 삭제하려면 Actions(작업), Delete(삭제)를 차례로 선택합니다. 대화 상자의 지침에 따라 먼저 Deactivate(비활성화)를 수행한 다음 삭제를 확인합니다. AWS에서는 이 작업을 수행하기 전에 먼저 키를 비활성화하고 키가 더 이상 사용되지 않는지 테스트할 것을 권장합니다. AWS Management Console을 사용하는 경우 키를 삭제하기 전에 키를 비활성화해야 합니다.

IAM 사용자에 대한 액세스 키를 나열하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  3. 해당 사용자의 이름을 선택한 후 보안 자격 증명 탭을 선택합니다. Access keys(액세스 키) 섹션에는 사용자의 액세스 키와 각 키의 상태가 표시됩니다.

    참고

    사용자의 액세스 키 ID만 표시됩니다. 비밀 액세스 키는 키를 만들 때만 가져올 수 있습니다.

여러 IAM 사용자의 액세스 키 ID를 나열하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

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

    1. 테이블 위 맨 오른쪽에서 설정 아이콘( 
                           Settings icon
                        )을 선택합니다.

    2. Manage columns(열 관리)에서 액세스 키 ID를 선택합니다.

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

  4. 액세스 키 ID 열에는 각 액세스 키 ID가 표시되고 그 다음에 키의 상태가 표시됩니다. 예: 23478207027842073230762374023 (Active) 또는 22093740239670237024843420327 (Inactive).

    이 정보를 사용하여 한 개 또는 두 개의 액세스 키를 가진 사용자의 액세스 키를 보고 복사할 수 있습니다. 액세스 키가 없는 사용자는 이 열에 없음이라고 표시됩니다.

    참고

    사용자의 액세스 키 ID와 상태만 표시됩니다. 비밀 액세스 키는 키를 만들 때만 가져올 수 있습니다.

어떤 IAM 사용자가 특정 액세스 키를 소유하고 있는지 확인하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  3. 검색 상자에 해당 사용자의 액세스 키 ID를 입력하거나 붙여 넣습니다.

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

    1. 테이블 위 맨 오른쪽에서 설정 아이콘( 
                           Settings icon
                        )을 선택합니다.

    2. Manage columns(열 관리)에서 액세스 키 ID를 선택합니다.

    3. 닫기를 선택하여 사용자 목록으로 돌아간 후 지정된 액세스 키를 소유하는 사용자로 필터링되었는지 확인합니다.

액세스 키 관리(AWS CLI)

AWS CLI에서 IAM 사용자 액세스 키를 관리하려면 다음 명령을 실행합니다.

액세스 키 관리(AWS API)

AWS API에서 IAM 사용자의 액세스 키를 관리하려면 다음 작업을 호출합니다.

액세스 키 업데이트

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

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

IAM 사용자 액세스 키 업데이트(콘솔)

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

애플리케이션을 중단하지 않고 IAM 사용자의 액세스 키를 업데이트하려면(콘솔)
  1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만듭니다.

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

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

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

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

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

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

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

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

  3. 가장 오래된 액세스 키의 Last used(마지막 사용) 정보를 검토하여 최초 액세스 키가 아직 사용 중인지 확인합니다. 한 가지 접근 방식은 며칠을 기다린 다음 계속하기 전에 사용된 적이 있는 기존 액세스 키가 있는지 확인하는 것입니다.

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

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

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

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

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

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

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

업데이트하거나 삭제해야 하는 액세스 키를 결정하려면(콘솔)
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

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

    1. 테이블 위 맨 오른쪽에서 설정 아이콘( 
                              Settings icon
                           )을 선택합니다.

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

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

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

액세스 키 업데이트(AWS CLI)

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

애플리케이션을 중단하지 않고 액세스 키를 업데이트하려면(AWS CLI)
  1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만들면 이 키도 기본적으로 활성 상태가 됩니다. 다음 명령을 실행합니다:

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

  3. 다음 명령을 사용하여 최초 액세스 키가 아직 사용 중인지 확인합니다.

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

  4. 단계 3 단계를 통해 기존 키를 사용한 적이 없다는 것이 밝혀진 경우 최초의 액세스 키를 즉시 삭제하지 말 것을 권장합니다. 그 대신 다음 명령을 사용하여 최초 액세스 키의 상태를 Inactive로 변경하세요.

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

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

액세스 키 업데이트(AWS API)

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

애플리케이션을 중단하지 않고 액세스 키를 업데이트하려면(AWS API)
  1. 최초 액세스 키가 활성 상태일 때 두 번째 액세스 키를 만들면 이 키도 기본적으로 활성 상태가 됩니다. 다음 작업을 호출합니다.

    • CreateAccessKey

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

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

  3. 다음 연산을 호출하여 최초 액세스 키가 아직 사용 중인지 확인합니다.

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

  4. 단계 3 단계를 통해 기존 키를 사용한 적이 없다는 것이 밝혀진 경우 최초의 액세스 키를 즉시 삭제하지 말 것을 권장합니다. 그 대신 다음 연산을 호출하여 최초 액세스 키의 상태를 Inactive로 변경하세요.

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

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

액세스 키 보안

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

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

참고

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

계정을 보호하는 가장 좋은 방법 중 하나는 AWS 계정 루트 사용자에 대한 액세스 키를 보유하지 않는 것입니다. 매우 드물지만 루트 사용자 액세스 키가 필요한 경우를 제외하고는 액세스 키를 생성하지 않는 것이 좋습니다. 대신 일상적인 관리 작업을 위한 관리 사용자를 AWS IAM Identity Center에서 생성합니다. IAM Identity Center에서 관리 사용자를 생성하는 방법에 대한 자세한 내용은 IAM Identity Center 사용 설명서Getting started를 참조하세요.

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

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

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

다음 시나리오에서는 IAM 역할과 임시 보안 인증을 사용합니다.

  • Amazon EC2 인스턴스에서 실행 중인 애플리케이션 또는 AWS CLI 스크립트가 있는 경우. 애플리케이션에서 액세스 키를 직접 사용하지 않도록 합니다. 액세스 키를 애플리케이션에 전달하거나, 애플리케이션에 포함하거나, 애플리케이션에서 소스로부터 액세스 키를 읽지 않도록 합니다. 대신, 애플리케이션에 대한 적절한 권한을 가진 IAM 역할을 정의하고 EC2의 역할을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다. 그러면 IAM 역할이 Amazon EC2 인스턴스에 연결됩니다. 이 방법을 통해 애플리케이션은 AWS에 대한 프로그래밍 방식의 직접 호출에 사용할 수 있는 임시 보안 인증을 얻을 수 있습니다. AWS SDK 및 AWS Command Line Interface(AWS CLI)에서는 역할에서 임시 보안 인증을 자동으로 가져올 수 있습니다.

  • 교차 계정 액세스 권한을 부여해야 합니다. IAM 역할을 사용하여 계정 사이에 신뢰를 구축한 다음, 한 계정의 사용자에게 신뢰할 수 있는 계정에 액세스할 수 있는 제한된 권한을 부여합니다. 자세한 내용은 튜토리얼: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임 단원을 참조하십시오.

  • 모바일 앱을 사용합니다. 암호화된 스토리지를 포함하여 앱에 액세스 키를 포함하지 않도록 합니다. 대신, Amazon 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 기반 페더레이션 정보 단원을 참조하십시오.

  • AWS에 연동하려고 하고 조직에 온프레미스 자격 증명 스토어가 있습니다. 사용자가 조직 내부에서 인증할 수 있는 경우 AWS 리소스에 액세스하기 위한 임시 보안 자격 증명을 발급하는 애플리케이션을 작성할 수 있습니다. 자세한 내용은 사용자 지정 자격 증명 브로커가 AWS 콘솔에 액세스할 수 있도록 하기 단원을 참조하십시오.

참고

AWS 리소스에 프로그래밍 방식으로 액세스해야 하는 애플리케이션에서 Amazon EC2 인스턴스를 사용하고 있나요? 그렇다면 EC2용 IAM 역할을 사용하세요.

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

IAM 사용자 액세스 키를 보호하려면 다음 예방 조치를 준수합니다.

  • 액세스 키를 코드에 직접 포함하지 마십시오. AWS SDKAWS 명령줄 도구를 사용하여 액세스 키를 알려진 위치에 보관합니다. 그러면 코드에 포함할 필요가 없습니다.

    액세스 키를 다음 중 한 곳에 보관하십시오.

    • AWS 자격 증명 파일. AWS SDK 및 AWS CLI에서는 AWS 자격 증명 파일에 저장된 자격 증명을 자동으로 사용합니다.

      AWS 자격 증명 파일을 사용하는 방법에 대한 자세한 내용은 SDK 설명서를 참조하십시오. 예를 들어, AWS SDK for Java 개발자 안내서Set AWS Credentials and RegionAWS Command Line Interface 사용 설명서구성 및 보안 인증 파일을 참조하세요.

      AWS SDK for .NET 및 AWS Tools for Windows PowerShell에 대한 보안 인증을 저장하려면 SDK 스토어를 사용하는 것이 좋습니다. 자세한 내용은 AWS SDK for .NET 개발자 안내서Using the SDK Store를 참조하세요.

    • 환경 변수. 다중 테넌트 시스템에서 시스템 환경 변수가 아닌 사용자 환경 변수를 선택합니다.

      환경 변수를 사용하여 보안 인증을 저장하는 방법에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서환경 변수를 참조하세요.

  • 애플리케이션마다 서로 다른 액세스 키를 사용합니다. 그러면 권한을 격리하고 액세스 키가 노출된 경우 개별 애플리케이션에 대해 액세스 키를 취소할 수 있습니다. 또한 애플리케이션별로 별도의 액세스 키를 사용하면 AWS CloudTrail 로그 파일에 개별 항목이 생성됩니다. 이 구성을 사용하면 특정 작업을 수행한 애플리케이션을 쉽게 확인할 수 있습니다.

  • 필요한 경우 액세스 키를 업데이트합니다. 액세스 키가 손상될 위험이 있는 경우 액세스 키를 업데이트하고 이전 액세스 키를 삭제합니다. 자세한 내용은 액세스 키 업데이트을 참조하십시오.

  • 미사용 액세스 키를 제거합니다. 사용자가 조직을 떠나는 경우 해당 IAM 사용자를 제거합니다. 그러면 사용자는 해당 리소스에 더 이상 액세스할 수 없습니다. 액세스 키가 마지막으로 사용된 시간을 확인하려면 GetAccessKeyLastUsed API(AWS CLI 명령: aws iam get-access-key-last-used)를 사용합니다.

  • 가장 민감한 API 작업에 대해 임시 보안 인증을 사용하고 멀티 팩터 인증을 구성합니다. 사용자가 호출할 수 있는 API 작업을 IAM 정책을 사용해 지정할 수 있습니다. 어떤 경우에는 특히 민감한 작업을 수행하도록 허용하기 전에 AWS MFA로 사용자를 인증하도록 요구하는 추가 보안이 필요할 수 있습니다. 예를 들어 사용자가 Amazon EC2 RunInstances, DescribeInstancesStopInstances 작업을 수행하도록 허용하는 정책이 있을 수 있습니다. 하지만 TerminateInstances처럼 안전하지 않은 작업의 경우 이를 제한해 사용자가 AWS MFA 디바이스에서 인증할 때만 작업을 수행하도록 해야 할 필요가 있을 수 있습니다. 자세한 내용은 MFA 보호 API 액세스 구성 단원을 참조하십시오.

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

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

액세스 키를 사용하여 로그인하려면(모바일 앱)
  1. 모바일 디바이스에서 모바일 앱을 엽니다.

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

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

  3. Access keys(액세스 키) 페이지에 정보를 입력합니다.

    • Access key ID – 액세스 키 ID를 입력합니다.

    • Secret access key - 비밀 액세스 키를 입력합니다.

    • Identity name - 모바일 앱에 표시할 ID 이름을 입력합니다. IAM 사용자 이름과 일치하지 않아도 됩니다.

    • Identity PIN - 이후 로그인에 사용할 개인 식별 번호(PIN)를 생성합니다.

      참고

      AWS 모바일 앱에 생체 인식을 활성화하면 PIN 대신 확인을 위해 지문 또는 안면 인식을 사용하라는 메시지가 표시됩니다. 생체 인식에 실패하면 PIN을 입력하라는 메시지가 대신 표시될 수 있습니다.

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

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

다음 주제에서는 액세스 키를 사용하도록 AWS SDK 및 AWS CLI를 설정하는 지침을 제공합니다.

액세스 키 감사

코드에서 AWS 액세스 키를 살펴보면 키가 자신의 계정에 속한 것인지 알 수 있습니다. 액세스 키 ID는 aws sts get-access-key-info AWS CLI 명령 또는 GetAccessKeyInfo AWS API 작업을 사용해 전달할 수 있습니다.

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

보안을 위해 AWS CloudTrail 로그를 검토하여 AWS에서 누가 작업을 수행했는지 확인할 수 있습니다. 역할 신뢰 정책에서 sts:SourceIdentity 조건 키를 사용하여 사용자가 역할을 수임할 때 자격 증명을 지정하도록 요구할 수 있습니다. 예를 들어 IAM 사용자가 자신의 사용자 이름을 소스 자격 증명으로 지정하도록 요구할 수 있습니다. 이를 통해 AWS에서 특정 작업을 수행한 사용자를 확인할 수 있습니다. 자세한 내용은 sts:SourceIdentity 단원을 참조하십시오.

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