IAM 관리 방법 - AWS Identity and Access Management

IAM 관리 방법

AWS 환경 내에서 AWS Identity and Access Management를 관리하려면 다양한 도구와 인터페이스를 활용해야 합니다. 가장 일반적인 방법은 사용자 및 역할 생성부터 권한 구성에 이르기까지 광범위한 IAM 관리 작업을 수행할 수 있는 웹 기반 인터페이스인 AWS Management Console을 사용하는 것입니다.

명령줄 인터페이스에 더 익숙한 사용자를 위해 AWS는 두 가지 명령줄 도구 세트(AWS Command Line Interface 및 AWS Tools for Windows PowerShell)를 제공합니다. 이를 통해 터미널에서 직접 IAM 관련 명령을 실행할 수 있으며, 이는 콘솔을 탐색하는 것보다 훨씬 효율적입니다. 또한 AWS CloudShell은 콘솔 로그인과 관련된 권한을 사용하여 웹 브라우저에서 직접 CLI 또는 SDK 명령을 실행할 수 있습니다.

콘솔과 명령줄 외에도 AWS는 다양한 프로그래밍 언어를 위한 소프트웨어 개발 키트(SDK)를 제공하므로 IAM 관리 기능을 애플리케이션에 직접 통합할 수 있습니다. 또는 서비스로 직접 HTTPS 요청을 실행할 수 있는 IAM 쿼리 API를 사용하여 프로그래밍 방식으로 IAM에 액세스할 수 있습니다. 이러한 다양한 관리 접근 방식을 활용하면 IAM을 기존 워크플로 및 프로세스에 유연하게 통합할 수 있습니다.

AWS Management Console 사용

콘솔은 IAM 및 AWS 리소스를 관리하기 위한 브라우저 기반 인터페이스입니다. 콘솔을 통하여 IAM에 액세스하는 방법에 대한 자세한 내용은 AWS 로그인 사용 설명서의 AWS 로그인 방법을 참조하세요.

AWS 콘솔

AWS Management Console은 AWS 리소스 관리를 위한 다양한 서비스 콘솔의 모음을 구성하고 참조하는 웹 애플리케이션입니다. 처음 로그인하면 콘솔 홈 페이지가 나타납니다. 홈 페이지는 각 서비스 콘솔에 대한 액세스를 제공하며, 이 단일 위치에서 AWS 관련 작업을 수행하는 데 필요한 정보에 액세스할 수 있습니다. 콘솔에 로그인한 후 사용할 수 있는 서비스와 애플리케이션은 액세스 권한이 있는 AWS 리소스에 따라 달라집니다. 역할을 수임하거나 권한이 부여된 그룹의 멤버가 되거나 명시적으로 권한을 받아 리소스에 대한 권한을 부여받을 수 있습니다. 독립 실행형 AWS 계정의 경우 루트 사용자 또는 IAM 관리자가 리소스에 대한 액세스를 구성합니다. AWS Organizations의 경우 관리 계정 또는 위임된 관리자가 리소스에 대한 액세스를 구성합니다.

AWS Management Console을 사용하여 AWS 리소스를 관리하게 하려면 보안 모범 사례로 임시 보안 인증 정보를 사용하여 사용자를 구성하는 것이 좋습니다. 역할을 수임한 IAM 사용자, 페더레이션 사용자 및 IAM Identity Center의 사용자는 임시 보안 인증을 갖고 있으며, IAM 사용자와 루트 사용자는 장기 보안 인증을 갖고 있습니다. 루트 사용자 보안 인증은 AWS 계정에 대한 전체 액세스 권한을 제공하는 반면, 다른 사용자는 IAM 정책에서 부여한 리소스에 대한 액세스 권한을 제공하는 보안 인증을 보유합니다.

로그인 환경은 AWS Management Console 사용자 유형마다 다릅니다.

  • IAM 사용자와 루트 사용자는 기본 AWS 로그인 URL(https://signin.aws.amazon.com)에서 로그인합니다. 로그인한 후에 권한이 부여된 계정의 리소스에 액세스할 수 있습니다.

    루트 사용자로 로그인하려면 루트 사용자 이메일 주소와 암호가 있어야 합니다.

    IAM 사용자로 로그인하려면 AWS 계정 번호나 별칭, IAM 사용자 이름 및 IAM 사용자 암호가 있어야 합니다.

    계정의 IAM 사용자를 장기 보안 인증이 필요한 특정 상황(예: 긴급 액세스)으로 제한하고 루트 사용자 보안 인증이 필요한 작업에만 루트 사용자를 사용하는 것이 좋습니다.

    사용자 편의를 위해 AWS 로그인 페이지는 브라우저 쿠키를 사용하여 IAM 사용자 이름 및 계정 정보를 기억합니다. 다음에 사용자가 AWS Management Console의 아무 페이지로든 이동하면 콘솔이 쿠키를 사용하여 사용자를 사용자 로그인 페이지로 리디렉션합니다.

    세션이 끝나면 콘솔에서 로그아웃하여 이전 로그인을 다시 사용하지 않도록 합니다.

  • IAM Identity Center 사용자는 조직에 고유한 특정 AWS 액세스 포털을 사용하여 로그인합니다. 로그인한 후에 액세스할 계정이나 애플리케이션을 선택할 수 있습니다. 계정에 액세스하려는 경우 관리 세션에 사용할 권한 세트를 선택합니다.

  • 페더레이션 사용자는 사용자 지정 엔터프라이즈 액세스 포털을 사용하여 AWS 계정 로그인에 연결된 외부 ID 제공업체를 통해 관리합니다. 페더레이션 사용자가 사용할 수 있는 AWS 리소스는 해당 조직에서 선택한 정책에 따라 달라집니다.

참고

추가적으로 보안을 강화하기 위해 루트 사용자, IAM 사용자 및 IAM Identity Center 사용자는 AWS 리소스에 대한 액세스 권한을 부여하기 전에 AWS에서 확인하는 다중 인증(MFA)을 이용할 수 있습니다. MFA가 활성화되는 경우 로그인하려면 MFA 디바이스에 대한 액세스 권한도 있어야 합니다.

다양한 사용자가 관리 콘솔에 로그인하는 방법에 대해 자세히 알아보려면 AWS 로그인 사용 설명서AWS Management Console에 로그인을 참조하세요.

AWS 명령줄 도구

AWS 명령줄 도구를 통해 시스템 명령줄에서 명령을 실행하여 IAM 및 AWS 작업을 수행할 수 있습니다. 명령줄을 사용하는 것이 콘솔을 사용하는 것보다 더 빠르고 편리할 수 있습니다. AWS 작업을 수행하는 스크립트를 작성할 때도 명령줄 도구가 유용합니다.

AWS에서는 AWS Command Line Interface(AWS CLI) 및 AWS Tools for Windows PowerShell라는 두 가지 명령줄 도구 세트를 제공합니다. AWS CLI 설치 및 사용에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 참조하세요. Tools for Windows PowerShell 도구 설치 및 사용에 대한 자세한 내용은 AWS Tools for Windows PowerShell 사용 설명서를 참조하세요.

콘솔에 로그인한 후 브라우저에서 AWS CloudShell을 사용하여 CLI 또는 SDK 명령을 실행할 수 있습니다. AWS 리소스 액세스 권한은 콘솔에 로그인할 때 사용하는 보안 인증에 기반합니다. 경험에 따라 AWS 계정을 관리하는 데 CLI가 더 효율적일 수 있습니다. 자세한 내용은 AWS CloudShell을 사용하여 AWS Identity and Access Management에서 작업 단원을 참조하세요.

AWS Command Line Interface(CLI) 및 소프트웨어 개발 키트(SDK)

IAM Identity Center 및 IAM 사용자는 CLI 또는 관련 SDK의 애플리케이션 인터페이스(API)를 통해 인증할 때 다양한 방법을 사용하여 보안 인증을 인증합니다.

보안 인증 및 구성 설정은 시스템 또는 사용자 환경 변수, 로컬 AWS 구성 파일 또는 명령줄에서 파라미터로 명시적으로 선언된 위치 등 다양한 장소에 있습니다. 특정 위치가 다른 위치보다 우선합니다.

IAM Identity Center 및 IAM 모두 CLI 또는 SDK에서 사용할 수 있는 액세스 키를 제공합니다. IAM Identity Center 액세스 키는 자동으로 새로 고칠 수 있는 임시 보안 인증이며 IAM 사용자에게 연결된 장기 액세스 키보다 권장됩니다.

CLI 또는 SDK를 사용하여 AWS 계정을 관리하려면 브라우저에서 AWS CloudShell을 사용할 수 있습니다. CloudShell을 사용하여 CLI 또는 SDK 명령을 실행하는 경우 먼저 콘솔에 로그인해야 합니다. AWS 리소스 액세스 권한은 콘솔에 로그인할 때 사용하는 보안 인증에 기반합니다. 경험에 따라 AWS 계정을 관리하는 데 CLI가 더 효율적일 수 있습니다.

애플리케이션 개발의 경우 CLI 또는 SDK를 컴퓨터에 다운로드하고 명령 프롬프트 또는 도커 창에서 로그인할 수 있습니다. 이 시나리오에서는 CLI 스크립트 또는 SDK 애플리케이션의 일부로 인증 및 액세스 보안 인증을 구성합니다. 환경 및 사용 가능한 액세스 권한에 따라 다양한 방식으로 리소스에 대한 프로그래밍 방식의 액세스를 구성할 수 있습니다.

  • AWS 서비스를 통해 로컬 코드를 인증하는 경우 IAM Identity Center 및 IAM Roles Anywhere를 사용하는 것이 좋습니다.

  • AWS 환경 내에서 실행되는 코드를 인증하는 경우 IAM 역할을 사용하거나 IAM Identity Center 보안 인증을 사용하는 것이 좋습니다.

AWS 액세스 포털을 사용하여 로그인할 때 권한 세트를 선택하는 시작 페이지에서 단기 자격 증명을 가져올 수 있습니다. 이러한 보안 인증은 기간이 정의되어 있으며 자동으로 새로 고쳐지지 않습니다. 이러한 보안 인증을 사용하려면 AWS 포털에 로그인한 후 AWS 계정을 선택하고 권한 세트를 선택합니다. 명령줄 또는 프로그래밍 방식의 액세스를 선택하여 프로그래밍 방식으로 또는 CLI에서 AWS 리소스에 액세스하는 데 사용할 수 있는 옵션을 확인합니다. 이러한 방법에 대한 자세한 내용은 IAM Identity Center 사용 설명서Getting and refreshing temporary credentials를 참조하세요. 이러한 보안 인증은 애플리케이션 개발 중에 코드를 신속하게 테스트하기 위해 자주 사용됩니다.

AWS 리소스에 대한 액세스를 자동화하는 경우 자동으로 새로 고쳐지는 IAM Identity Center 보안 인증을 사용하는 것이 좋습니다. IAM Identity Center에서 사용자 및 권한 세트를 구성한 경우 aws configure sso 명령을 사용하여 사용 가능한 보안 인증을 식별하고 프로파일에 저장하는 데 도움이 되는 명령줄 마법사를 사용합니다. 프로파일 구성에 대한 자세한 내용은 AWS Command Line Interface 버전 2 사용 설명서aws configure sso 마법사를 사용하여 프로파일 구성을 참조하세요.

참고

많은 샘플 애플리케이션에서 IAM 사용자 또는 루트 사용자에 연결된 장기 액세스 키를 사용합니다. 장기 보안 인증은 샌드박스 환경에서 학습 체험의 일환으로만 사용해야 합니다. 장기 액세스 키의 대안을 검토하고 가능한 한 빨리 IAM Identity Center 보안 인증 또는 IAM 역할과 같은 대체 보안 인증을 사용하도록 코드를 전환할 계획을 수립합니다. 코드를 전환한 후에는 액세스 키를 삭제합니다.

CLI 구성에 대한 자세한 내용은 AWS Command Line Interface 버전 2 사용 설명서최신 버전의 AWS CLI 설치 또는 업데이트AWS Command Line Interface 사용 설명서보안 인증 정보 인증 및 액세스를 참조하세요.

SDK 구성에 대한 자세한 내용은 AWS SDK 및 도구 참조 가이드IAM Identity Center authenticationAWS SDK 및 도구 참조 가이드IAM Roles Anywhere를 참조하세요.

AWS SDK 사용

AWS에서는 다양한 프로그래밍 언어 및 플랫폼(Java, Python, Ruby, .NET, iOS, Android 등)을 위한 라이브러리와 샘플 코드로 구성된 소프트웨어 개발 키트(SDK)를 제공합니다. SDK를 사용하면 편리하게 IAM 및 AWS에 프로그래밍 방식으로 액세스할 수 있습니다. 예를 들어 SDK는 요청에 암호화 방식으로 서명, 오류 관리 및 자동으로 요청 재시도와 같은 작업을 처리합니다. 다운로드 및 설치 방법을 비롯하여 AWS SDK에 대한 자세한 내용은 Amazon Web Services용 도구 페이지를 참조하세요.

IAM 쿼리 API 사용

서비스로 직접 HTTPS 요청을 실행할 수 있는 IAM 쿼리 API를 사용하여 프로그래밍 방식으로 IAM 및 AWS에 액세스할 수 있습니다. 쿼리 API를 사용할 때는 자격 증명을 사용하여 요청에 디지털 방식으로 서명하는 코드를 포함해야 합니다. 자세한 내용은 HTTP 쿼리 요청을 사용하여 IAM API 호출IAM API 참조를 참조하세요.