AWS 보안 자격 증명 - AWS Identity and Access Management

AWS 보안 자격 증명

AWS와 상호 작용할 경우 AWS 보안 자격 증명을 지정하여 사용자가 누구이고 요청 중인 리소스에 액세스할 수 있는 권한이 있는지 여부를 확인합니다. AWS에서는 보안 자격 증명을 사용하여 요청을 인증하고 권한을 부여합니다.

예를 들어 Amazon Simple Storage Service(S3) 버킷에서 보호된 파일을 다운로드하려면 보안 인증에서 해당 액세스를 허용해야 합니다. 보안 인증에서 파일 다운로드 권한이 없는 것으로 표시되는 경우 AWS는 요청을 거부합니다. 하지만 공개적으로 공유되는 Amazon S3 버킷에서 파일을 다운로드하는 데에는 AWS 보안 인증이 요구되지 않습니다.

AWS에는 여러 유형의 사용자가 있습니다. 모든 AWS 사용자는 보안 인증 정보를 가지고 있습니다. 계정 소유자(루트 사용자), AWS IAM Identity Center의 사용자, 페더레이션 사용자 및 IAM 사용자가 있습니다.

사용자는 장기 또는 임시 보안 인증 정보를 가지고 있습니다. 루트 사용자, IAM 사용자 및 액세스 키에는 만료되지 않는 장기 보안 인증 정보가 있습니다. 장기 보안 인증 정보를 보호하기 위해 액세스 키를 관리하고, 암호를 변경하며, MFA를 활성화하는 프로세스를 마련합니다.

IAM 역할, AWS IAM Identity Center의 사용자 또는 페더레이션 사용자에게는 임시 보안 인증 정보가 있습니다. 임시 보안 인증 정보는 지정된 기간이 지난 후 또는 사용자가 세션을 종료할 때 만료됩니다. 임시 보안 인증은 다음과 같은 차이점을 제외하고는 장기 보안 인증과 거의 동일한 효력을 지닙니다.

  • 임시 보안 자격 증명은 그 이름이 암시하듯 단기적입니다. 이 자격 증명은 몇 분에서 몇 시간까지 지속되도록 구성할 수 있습니다. 자격 증명이 만료된 후 AWS는 더는 그 자격 증명을 인식하지 못하거나 그 자격 증명을 사용한 API 요청으로부터 이루어지는 어떤 종류의 액세스도 허용하지 않습니다.

  • 임시 보안 자격 증명은 사용자와 함께 저장되지 않지만 동적으로 생성되어 요청시 사용자에게 제공됩니다. 임시 보안 자격 증명이 만료되었을 때(심지어는 만료 전이라도) 사용자는 새 자격 증명을 요청할 수 있습니다. 단, 자격 증명을 요청하는 해당 사용자에게 그렇게 할 수 있는 권한이 있어야 합니다.

따라서 임시 보안 인증은 장기 보안 인증보다 다음과 같은 이점이 있습니다.

  • 애플리케이션으로 장기 AWS 보안 자격 증명을 배포 또는 포함할 필요가 없습니다.

  • 사용자에 대한 AWS 자격 증명을 정의하지 않고도 AWS 리소스에 대한 액세스 권한을 사용자에게 제공할 수 있습니다. 임시 자격 증명은 역할 및 아이덴티티 페더레이션을 위한 기초입니다.

  • 임시 보안 인증은 수명이 제한되어 있어서, 더 이상 필요하지 않을 때 업데이트하거나 명시적으로 취소할 필요가 없습니다. 임시 보안 자격 증명이 만료된 후에는 다시 사용할 수 없습니다. 그 자격 증명에 대해 유효 기간을 최대 한계까지 지정할 수 있습니다.

보안 고려 사항

AWS 계정의 보안 조건을 결정할 때 다음 정보를 고려하는 것이 좋습니다.

  • AWS 계정을 만들면 계정 루트 사용자가 생성됩니다. 루트 사용자(계정 소유자)의 보안 인증 정보는 계정 내 모든 리소스에 대한 모든 액세스 권한을 허용합니다. 루트 사용자를 사용하여 수행할 첫 번째 작업은 다른 사용자에게 AWS 계정 관리 권한을 부여하여 루트 사용자의 사용을 최소화하는 것입니다.

  • IAM 정책을 사용하여 리소스에 대한 루트 사용자 액세스를 명시적으로 거부할 수는 없습니다. 루트 사용자의 권한을 제한하려면 AWS Organizations 서비스 제어 정책(SCP)을 사용해야 합니다.

  • 루트 사용자 암호를 잊어버렸거나 분실한 경우 계정에 연결된 이메일 주소에 액세스할 수 있어야 암호를 재설정할 수 있습니다.

  • 루트 사용자 액세스 키를 분실한 경우 루트 사용자로 계정에 로그인하여 새 액세스 키를 생성할 수 있어야 합니다.

  • 일상적인 작업에 루트 사용자를 사용하지 마세요. 루트 사용자는 루트 사용자만 수행할 수 있는 작업을 수행하는 데 사용하세요. 루트 사용자로 로그인해야 하는 전체 작업 목록을 보려면 루트 사용자 보안 인증이 필요한 작업 섹션을 참조하세요.

  • 보안 자격 증명은 계정에 특정합니다. 여러 AWS 계정에 액세스할 수 있는 경우, 각 계정마다 별도의 보안 인증 정보가 있습니다.

  • 정책은 사용자, 역할 또는 사용자 그룹 멤버가 수행할 수 있는 작업, 작업의 대상 AWS 리소스 및 작업 수행 조건을 결정합니다. 정책을 사용하면 AWS 계정에서 AWS 서비스와 리소스에 대한 액세스 권한을 안전하게 제어할 수 있습니다. 보안 이벤트에 대응하여 권한을 수정하거나 취소해야 하는 경우, 자격 증명 직접 변경하는 것이 아니라 정책을 삭제하거나 수정합니다.

  • 긴급 액세스 IAM 사용자의 로그인 보안 인증 정보와 프로그래밍 방식으로 액세스하기 위해 생성한 액세스 키는 안전한 위치에 저장해야 합니다. 액세스 키를 분실한 경우 계정에 로그인하여 새 액세스 키를 생성해야 합니다.

  • IAM 사용자 및 액세스 키가 제공하는 장기 보안 인증 대신 IAM 역할 및 페더레이션 사용자가 제공하는 임시 보안 인증을 사용하는 것이 좋습니다.

연동 자격 증명

페더레이션 자격 증명 보안 AWS 계정 리소스에 액세스하는 데 사용할 수 있는 임시 AWS 보안 인증 정보가 부여되는 외부 자격 증명이 있는 사용자입니다. 외부 자격 증명은 회사 자격 증명 스토어(예: LDAP 또는 Windows Active Directory) 또는 제3자(예: Amazon, Facebook 또는 Google을 통한 로그인)에서 가져올 수 있습니다. 페더레이션 자격 증명은 AWS Management Console 또는 AWS 액세스 포털을 사용하여 로그인하지 않습니다.

페더레이션 자격 증명이 AWS에 로그인하도록 하려면 https://signin.aws.amazon.com/federation을(를) 포함하는 사용자 지정 URL을 생성해야 합니다. 자세한 내용은 사용자 지정 자격 증명 브로커가 AWS 콘솔에 액세스할 수 있도록 하기 섹션을 참조하세요.

페더레이션 자격 증명에 대한 자세한 내용은 자격 증명 공급자 및 페더레이션 섹션을 참조하세요.

멀티 팩터 인증(MFA)

다중 인증(MFA)은 AWS 계정에 액세스할 수 있는 사용자의 보안 수준을 강화합니다. 보안 강화를 위해 AWS 계정 루트 사용자 보안 인증 및 모든 IAM 사용자에 대해 MFA를 요구하는 것이 좋습니다. 자세한 내용은 AWS에서 멀티 팩터 인증(MFA) 사용 섹션을 참조하세요.

MFA를 활성화하고 AWS 계정에 로그인하면 로그인 보안 인증 정보와 함께 MFA 디바이스에서 생성된 응답(예: 코드, 터치 또는 탭, 생체 인식 스캔)을 입력하라는 메시지가 표시됩니다. MFA를 추가하면 AWS 계정 설정과 리소스가 더욱 안전하게 보호됩니다.

기본적으로 MFA 활성화되지 않습니다. AWS Management Console의 보안 인증 페이지 또는 IAM 대시보드로 이동하여 AWS 계정 루트 사용자에 대한 MFA 디바이스를 활성화하고 관리할 수 있습니다. IAM 사용자에 대해 MFA를 활성화하는 방법에 대한 자세한 내용은 AWS에서 사용자에 대해 MFA 디바이스 활성화 섹션을 참조하세요.

다중 인증(MFA) 디바이스를 사용한 로그인 방법에 대한 자세한 내용은 IAM 로그인 페이지에 MFA 디바이스 사용 섹션을 참조하세요.

프로그래밍 방식 액세스

프로그래밍 방식으로 AWS를 호출하거나 AWS Command Line Interface 또는 AWS Tools for PowerShell을 사용하기 위한 AWS 액세스 키를 제공합니다. 가능한 경우 단기 액세스 키를 사용하는 것이 좋습니다.

장기 액세스 키를 생성할 때는 액세스 키 ID(예: AKIAIOSFODNN7EXAMPLE)와 비밀 액세스 키(예: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)를 세트로 생성합니다. 비밀 액세스 키는 생성할 때만 다운로드할 수 있습니다. 비밀 액세스 키를 다운로드하지 않았거나 분실한 경우, 액세스 키를 새로 생성해야 합니다.

대부분의 경우 IAM 사용자의 액세스 키를 생성할 때 갖는 만료되지 않는 장기 액세스 키가 필요하지 않습니다. 대신, IAM 역할을 만들고 임시 보안 인증 정보를 생성할 수 있습니다. 임시 보안 인증 정보는 액세스 키 ID와 비밀 액세스 키를 포함하지만, 보안 인증 정보가 만료되는 시간을 나타내는 보안 토큰도 포함합니다. 만료된 이후에는 더 이상 유효하지 않습니다.

AKIA로 시작하는 액세스 키 ID는 IAM 사용자 또는 AWS 계정 루트 사용자를 위한 장기 액세스 키입니다. ASIA로 시작하는 액세스 키 ID는 AWS STS 작업을 사용하여 생성하는 임시 보안 인증 액세스 키입니다.

사용자가 AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 프로그래밍 방식으로 액세스를 부여하는 방법은 AWS에 액세스하는 사용자 유형에 따라 다릅니다.

사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.

프로그래밍 방식 액세스가 필요한 사용자는 누구인가요? To By

작업 인력 ID

(IAM Identity Center에서 관리되는 사용자)

임시 보안 인증 정보로 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다.

사용하고자 하는 인터페이스에 대한 지침을 따릅니다.

IAM 임시 보안 인증 정보로 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. IAM 사용 설명서AWS 리소스와 함께 임시 보안 인증 정보 사용에 나와 있는 지침을 따르세요.
IAM

(권장되지 않음)

장기 보안 인증 정보로 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다.

사용하고자 하는 인터페이스에 대한 지침을 따릅니다.

장기 액세스 키의 대안

대부분의 일반적인 사용 사례에서는 장기 액세스 키 대신 사용할 수 있는 대안이 있습니다. 계정 보안을 강화하려면 다음 사항을 고려하세요.

  • 애플리케이션 코드나 코드 리포지토리에 장기 액세스 키와 비밀 액세스 키를 포함해서는 안 됨 - 대신, 일반 텍스트로 키를 하드 코딩할 필요가 없도록 AWS Secrets Manager 또는 기타 비밀 관리 솔루션을 사용하세요. 그러면 애플리케이션 또는 클라이언트가 필요할 때 비밀 정보를 검색할 수 있습니다. 자세한 내용은 AWS Secrets Manager 사용 설명서AWS Secrets Manager(이)란 무엇입니까? 섹션을 참조하세요.

  • 가능하면 IAM 역할을 사용하여 임시 보안 인증 정보 생성 - 가능하면 장기 액세스 키보다는 항상 메커니즘을 사용하여 임시 보안 인증 정보를 발급하세요. 임시 보안 인증 정보는 사용자와 함께 저장되지 않지만 동적으로 생성되어 요청 시 사용자에게 제공되므로 더 안전합니다. 임시 보안 인증 정보는 수명이 제한되어 있으므로 관리하거나 업데이트할 필요가 없습니다. 임시 액세스 키를 제공하는 메커니즘으로는 IAM 역할, IAM Identity Center 사용자의 인증 등이 있습니다. AWS 외부에서 실행되는 시스템의 경우 AWS Identity and Access Management Roles Anywhere를 사용할 수 있습니다.

  • AWS Command Line Interface(AWS CLI) 또는 aws-shell에 대해 장기 액세스 키의 대안 사용 – 다음을 대안으로 사용할 수 있습니다.

    • AWS CloudShell은 브라우저 기반의 사전 인증된 셸로, AWS Management Console에서 직접 실행할 수 있습니다. 원하는 셸(Bash, PowerShell 또는 Z 셸)을 통해 AWS 서비스에 대해 AWS CLI 명령을 실행할 수 있습니다. 이 경우 명령줄 도구를 다운로드하거나 설치할 필요가 없습니다. 자세한 내용은 AWS CloudShell 사용 설명서AWS CloudShell(이)란 무엇입니까? 섹션을 참조하세요.

    • AWS IAM Identity Center(IAM Identity Center)와 AWS CLI 버전 2의 통합. 사용자를 인증하고, AWS CLI 명령을 실행하기 위한 단기 보안 인증을 제공할 수 있습니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서AWS CLI와 IAM Identity Center 통합AWS Command Line Interface 사용 설명서IAM Identity Center를 사용하도록 AWS CLI 구성을 참조하세요.

  • 애플리케이션 또는 AWS 서비스에 액세스해야 하는 인간 사용자를 위해 장기 액세스 키를 생성해서는 안 됨 - IAM Identity Center는 외부 IdP 사용자가 AWS 서비스에 액세스할 수 있도록 임시 액세스 보안 인증 정보를 생성할 수 있습니다. 따라서 IAM에서 장기 보안 인증 정보를 생성하고 관리할 필요가 없습니다. IAM Identity Center에서 외부 IdP 사용자에게 액세스 권한을 부여하는 IAM Identity Center 권한 세트를 생성합니다. 그런 다음 선택한 AWS 계정에서 IAM Identity Center의 그룹을 권한 세트에 할당합니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서AWS IAM Identity Center이란 무엇인가요?, 외부 자격 증명 공급자 연결권한 세트를 참조하세요.

  • AWS 컴퓨팅 서비스 내에 장기 액세스 키를 저장해서는 안 됨 - 대신, 컴퓨팅 리소스에 IAM 역할을 할당하세요. 그러면 액세스 권한을 부여하기 위한 임시 보안 인증이 자동으로 제공됩니다. 예를 들어 Amazon EC2 인스턴스에 연결된 인스턴스 프로파일을 만들 때, 인스턴스에 AWS 역할을 할당하고 모든 애플리케이션에서 해당 역할을 사용할 수 있도록 할 수 있습니다. 인스턴스 프로파일에는 역할이 포함되어 있으며 Amazon EC2 인스턴스에서 실행되는 프로그램이 임시 보안 인증 정보를 얻을 수 있습니다. 자세히 알아보려면 IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여를 참조하세요.

AWS 보안 인증을 사용한 AWS 액세스

AWS에 액세스하는 방식과 AWS 사용자 유형에 따라, AWS는 다양한 유형의 보안 인증을 요구합니다. 예를 들어 AWS Management Console에는 로그인 보안 인증 정보를 사용하는 반면, AWS를 프로그래밍 방식으로 호출하는 데에는 액세스 키를 사용합니다. 또한 계정 루트 사용자, AWS Identity and Access Management(IAM) 사용자, AWS IAM Identity Center 사용자 또는 페더레이션 자격 증명 등 사용하는 각 자격 증명별로 AWS에서 고유한 보안 인증 정보가 할당됩니다.

사용자 유형에 따른 AWS 로그인 방법에 대한 단계별 지침은 AWS 로그인 사용 설명서AWS 로그인 방법을 참조하세요.