IAM ID 및 자격 증명 비교
AWS Identity and Access Management에서 관리되는 ID는 IAM 사용자, IAM 역할 및 IAM 그룹입니다. 이러한 ID는 AWS가 AWS 계정과 함께 생성한 루트 사용자 외에 사용됩니다.
일상적인 작업, 심지어 관리 작업의 경우에도 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 대신 추가 사용자를 제공해서 필요한 작업을 수행하는 데 필요한 권한을 해당 사용자에게 부여합니다. IAM Identity Center 디렉터리에 사람을 추가하거나, 외부 ID 공급자를 IAM Identity Center 또는 IAM과 페더레이션하거나, 최소 권한 IAM 사용자를 생성하여 사용자를 추가할 수 있습니다.
사용자를 설정한 후에는 특정 사용자에게 AWS 계정 액세스 권한을 부여하고 리소스에 액세스할 수 있는 권한을 제공할 수 있습니다.
모범 사례로, AWS는 사람이 IAM 역할을 맡아 AWS에 액세스하도록 하여 임시 자격 증명을 사용하도록 하는 것을 권장합니다. IAM Identity Center 디렉터리에서 ID를 관리하거나 ID 공급자와의 페더레이션을 사용하는 경우 모범 사례를 따르고 있는 것입니다.
용어
IAM 자격 증명 작업 시 다음과 같은 용어가 일반적으로 사용됩니다.
- IAM 리소스
-
IAM 서비스는 다음 리소스를 저장합니다. 이 리소스는 IAM 콘솔에서 추가, 편집, 제거할 수 있습니다.
-
IAM 사용자
-
IAM 그룹
-
IAM 역할
-
권한 정책
-
자격 증명 공급자 객체
-
- IAM 엔터티
-
AWS이(가) 인증에 사용하는 IAM 리소스. 리소스 기반 정책에서 엔터티를 보안 주체로 지정합니다.
-
IAM 사용자
-
IAM 역할
-
- IAM 자격 증명
-
정책에서 권한을 부여받아 작업을 수행하고 리소스에 액세스할 수 있는 IAM 리소스입니다. ID에는 IAM 사용자, IAM 그룹 및 IAM 역할이 포함됩니다.
- 보안 주체
-
AWS 리소스에 대한 작업 또는 연산을 요청할 수 있는 AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할입니다. 보안 주체에는 인간 사용자, 워크로드, 페더레이션 사용자 및 수임된 역할이 포함됩니다. 인증 후 IAM은 보안 주체 유형에 따라 AWS에 요청할 수 있는 영구 또는 임시 보안 인증 정보를 보안 주체에게 부여합니다.
인간 사용자는 인간 자격 증명이라고도 하며, 애플리케이션의 사용자, 관리자, 개발자, 운영자, 소비자 등입니다.
워크로드는 애플리케이션, 프로세스, 운영 도구 및 기타 구성 요소 같이 비즈니스 가치를 창출하는 리소스 및 코드 모음입니다.
페더레이션 사용자는 Active Directory, Okta 또는 Microsoft Entra 같은 다른 자격 증명 공급자가 자격 증명과 보안 인증 정보를 관리하는 사용자입니다.
IAM 역할은 계정에서 생성할 수 있고 해당 자격 증명이 수행할 수 있는 작업과 수행할 수 없는 작업을 결정하는 특정 권한을 지닌 IAM 자격 증명입니다. 그러나 역할은 한 사람하고만 연관되지 않고 해당 역할이 필요한 사람이라면 누구든지 맡을 수 있어야 합니다.
IAM은 IAM 사용자와 루트 사용자에게 장기 보안 인증 정보를 부여하고 IAM 역할에 임시 보안 인증 정보를 부여합니다. 페더레이션 사용자와 AWS IAM Identity Center의 사용자는 AWS에 로그인할 때 IAM 역할을 수임하고 임시 보안 인증 정보를 부여받습니다. 가장 좋은 방법은 인간 사용자와 워크로드가 임시 보안 인증을 사용하여 AWS 리소스에 액세스하도록 하는 것입니다.
IAM 사용자와 IAM Identity Center의 사용자의 차이점
IAM 사용자는 별도의 계정이 아니라 계정 내의 사용자입니다. 각 사용자에게는 AWS Management Console에 액세스하기 위한 자체 암호가 있습니다. 또한 사용자가 계정의 리소스를 사용하기 위한 프로그래밍 방식의 요청을 할 수 있도록 각 사용자에 대한 개별 액세스 키를 생성할 수 있습니다.
IAM 사용자와 해당 액세스 키에는 AWS 리소스에 대한 장기 보안 인증 정보가 있습니다. IAM 사용자의 주요 용도는 IAM 역할을 사용할 수 없는 워크로드에 API 또는 CLI를 사용하여 AWS 서비스에 프로그래밍 방식으로 요청하는 기능을 제공하는 것입니다.
참고
프로그래밍 방식 액세스 권한과 장기 보안 인증이 있는 IAM 사용자가 필요한 시나리오의 경우 필요할 때 액세스 키를 업데이트하는 것이 좋습니다. 자세한 내용은 액세스 키 업데이트 단원을 참조하십시오.
작업 인력 자격 증명(사람)은 수행하는 역할에 따라 권한 요구 사항이 다르고 조직 전체의 다양한 AWS 계정에서 작업할 수 있는 AWS IAM Identity Center의 사용자입니다. 액세스 키가 필요한 사용 사례가 있는 경우 AWS IAM Identity Center의 사용자를 사용하여 해당 사용 사례를 지원할 수 있습니다. AWS 액세스 포털을 통해 로그인하는 사용자는 AWS 리소스에 대한 단기 자격 증명이 포함된 액세스 키를 얻을 수 있습니다. 중앙 액세스 관리를 위해 AWS IAM Identity Center(IAM Identity Center)를 사용하여 계정에 대한 액세스 권한과 해당 계정 내 권한을 관리하는 것이 좋습니다. IAM Identity Center는 사용자 및 그룹을 추가하고 AWS 리소스에 대한 액세스 수준을 할당할 수 있는 기본 ID 소스로 Identity Center 디렉터리를 사용하여 자동으로 구성됩니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서에서 AWS IAM Identity Center란 무엇입니까? 단원을 참조하세요.
이 두 유형의 사용자 간의 주요 차이점은 IAM Identity Center의 사용자는 관리 콘솔 또는 AWS 리소스에 액세스하기 전에 AWS에 로그인할 때 자동으로 IAM 역할을 수임한다는 것입니다. IAM 역할은 사용자가 AWS에 로그인할 때마다 임시 보안 인증 정보를 부여합니다. IAM 사용자가 IAM 역할을 사용하여 로그인하려면 역할을 수임하고 전환할 수 있는 권한이 있어야 하며, AWS 계정에 액세스한 후 수임하려는 역할로의 전환을 명시적으로 선택해야 합니다.
기존 자격 증명 소스의 사용자 페더레이션
조직 내 사용자가 회사 네트워크에 로그인할 때 이미 인증된 경우 해당 사용자를 위해 별도의 IAM 사용자 또는 IAM Identity Center 사용자를 생성할 필요가 없습니다. 대신 IAM이나 AWS IAM Identity Center 사용을 통해 이러한 사용자 자격 증명을 AWS에 페더레이션할 수 있습니다. 페더레이션 사용자는 특정 리소스에 액세스할 수 있는 권한을 부여하는 IAM 역할을 수임합니다. 역할에 관한 자세한 내용은 역할 용어 및 개념 단원을 참조하세요.
페더레이션은 다음과 같은 경우에 유용합니다.
-
사용자가 이미 기업 디렉터리에 있는 경우.
기업 디렉터리가 SAML 2.0(Security Assertion Markup Language 2.0)과 호환되는 경우, 기업 디렉터리를 구성하여 사용자에게 AWS Management Console에 대한 Single-Sign On(SSO) 액세스를 제공할 수 있습니다. 자세한 내용은 임시 자격 증명과 관련된 일반적인 시나리오 단원을 참조하십시오.
기업 디렉터리가 SAML 2.0과 호환되지 않는 경우, ID 브로커 애플리케이션을 생성하여 사용자에게 AWS Management Console에 대한 Single-Sign On(SSO) 액세스를 제공할 수 있습니다. 자세한 내용은 AWS 콘솔에 대한 사용자 지정 ID 브로커 액세스 활성화 단원을 참조하십시오.
기업 디렉토리가 Microsoft Active Directory인 경우, AWS IAM Identity Center를 사용하여 Active Directory의 자체 관리형 디렉토리 또는 AWS Directory Service
의 디렉토리에 연결해 기업 디렉토리와 AWS 계정 간의 신뢰를 설정할 수 있습니다. Okta 또는 Microsoft Entra와 같은 외부 ID 제공업체(IdP)를 사용하여 사용자를 관리하는 경우 AWS IAM Identity Center을 사용하여 IdP와 AWS 계정 간에 신뢰를 설정할 수 있습니다. 자세한 내용은 AWS IAM Identity Center 사용 설명서의 외부 ID 제공업체에 연결을 참조하세요.
-
사용자가 이미 인터넷 자격 증명을 보유한 경우
사용자가 Login with Amazon, Facebook, Google 또는 OpenID Connect(OIDC) 호환 자격 증명 공급자 등의 인터넷 자격 증명 공급자를 통해 자신을 식별할 수 있도록 모바일 앱 또는 웹 기반 앱을 만들면, 해당 앱에서 연동을 통해 AWS에 액세스할 수 있습니다. 자세한 내용은 OIDC 페더레이션 단원을 참조하십시오.
작은 정보
인터넷 자격 증명 공급자를 통해 ID 페더레이션을 사용하려면 Amazon Cognito를 사용하는 것이 좋습니다.
사용자 액세스를 제공하는 다양한 방법
다음은 AWS 리소스에 대한 액세스 권한을 제공할 수 있는 방법입니다.
사용자 액세스 유형 | 언제 사용되나요? | 자세한 정보는 어디에 있나요? |
---|---|---|
작업 인력 사용자 등 사람이 IAM Identity Center를 사용하여 AWS 리소스에 액세스하기 위한 Single Sign-On 액세스 |
IAM Identity Center는 사용자의 관리와 AWS 계정 및 클라우드 애플리케이션에 대한 액세스를 통합하는 중앙 위치를 제공합니다. IAM Identity Center 내에서 ID 스토어를 설정하거나 기존 ID 제공업체(idP)와의 페더레이션을 구성할 수 있습니다. 보안상 가장 좋은 방법은 인간 사용자에게 AWS 리소스에 대한 제한된 보안 인증 정보를 부여하는 것입니다. 사용자는 보다 쉽게 로그인할 수 있으며 단일 시스템에서 리소스에 대한 액세스를 제어할 수 있습니다. IAM Identity Center는 추가 계정 보안을 위해 다중 인증(MFA)을 지원합니다. |
IAM Identity Center 설정에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서의 Getting Started(시작하기)를 참조하세요. IAM Identity Center의 MFA 사용에 대한 자세한 내용은 AWS IAM Identity Center 사용 설명서의 Multi-factor authentication(다중 인증)을 참조하세요. |
작업 인력 사용자 등 인간 사용자가 IAM ID 제공업체(IdP)를 사용하여 AWS 서비스에 액세스하기 위한 페더레이션 액세스 |
IAM은 OpenID Connect(OIDC) 또는 SAML 2.0(Security Assertion Markup Language 2.0)과 호환되는 IdP를 지원합니다. IAM ID 제공업체를 생성한 후 페더레이션 사용자에게 동적으로 할당할 수 있는 IAM 역할을 하나 이상 생성합니다. |
IAM ID 제공업체 및 페더레이션에 대한 자세한 내용은 자격 증명 공급자 및 페더레이션 섹션을 참조하세요. |
AWS 계정 간 크로스 계정 액세스 |
일부 AWS 리소스에 대한 액세스를 AWS 계정의 사용자와 공유하려고 합니다. 역할은 계정 간 액세스를 부여하는 기본적인 방법입니다. 그러나 일부 AWS 서비스는 (역할을 프록시로 사용하는 대신) 정책을 리소스에 직접 연결할 수 있는 리소스 기반 정책을 지원합니다. |
IAM 역할에 대한 자세한 내용은 IAM 역할 섹션을 참조하세요. 서비스 연결 역할에 대한 자세한 내용은 서비스 연결 역할 생성를 참조하세요. 서비스 연결 역할 사용을 지원하는 서비스에 대한 자세한 내용은 AWS IAM으로 작업하는 서비스 섹션을 참조하세요. 서비스 연결 역할 열에 예가 있는 서비스를 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 해당 열의 예와 연결된 링크를 선택하세요. |
AWS 계정의 지정된 IAM 사용자를 위한 장기 보안 인증 |
AWS에서 IAM 사용자의 장기 보안 인증이 필요한 특정 사용 사례가 있을 수 있습니다. IAM을 사용하여 AWS 계정에서 이러한 IAM 사용자를 생성하고 IAM을 사용하여 해당 권한을 관리할 수 있습니다. 일부 사용 사례는 다음과 같습니다.
프로그래밍 방식 액세스 및 장기 보안 인증이 있는 IAM 사용자가 필요한 시나리오에서는 모범 사례로, 필요할 때 액세스 키를 업데이트하는 것이 좋습니다. 자세한 내용은 액세스 키 업데이트 단원을 참조하십시오. |
IAM 사용자 설정에 대한 자세한 내용은 AWS 계정에서 IAM 사용자 생성 섹션을 참조하세요. IAM 사용자 액세스 키에 대한 자세한 내용은 IAM 사용자의 액세스 키 관리 섹션을 참조하세요. AWS CodeCommit 또는 Amazon Keyspaces에 대한 서비스별 보안 인증에 대한 자세한 내용은 CodeCommit용 IAM 자격 증명: Git 자격 증명, SSH 키 및 AWS 액세스 키 및 Amazon Keyspaces(Apache Cassandra용)와 함께 IAM 사용 섹션을 참조하세요. |
프로그래밍 방식의 사용자 액세스 지원
사용자가 AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 프로그래밍 방식으로 액세스를 부여하는 방법은 AWS에 액세스하는 사용자 유형에 따라 다릅니다.
-
IAM Identity Center에서 ID를 관리하는 경우 AWS API에는 프로필이 필요하고 AWS Command Line Interface에는 프로필이나 환경 변수가 필요합니다.
-
IAM 사용자가 있는 경우 AWS API 및 AWS Command Line Interface에는 액세스 키가 필요합니다. 가능한 경우 액세스 키 ID, 비밀 액세스 키 및 보안 인증 정보가 만료되는 시간을 나타내는 보안 토큰으로 구성된 임시 보안 인증 정보를 만듭니다.
사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.
프로그래밍 방식 액세스가 필요한 사용자는 누구인가요? | 옵션 | 추가 정보 |
---|---|---|
작업 인력 ID (IAM Identity Center에서 관리되는 사람 및 사용자) |
단기 보안 인증 정보를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 직접 또는 AWS SDK를 사용하여 서명하려 합니다. |
AWS CLI의 경우 AWS IAM Identity Center 사용 설명서의 CLI 액세스를 위한 IAM 역할 보안 인증 정보 가져오기에 나와 있는 지침을 따르세요. AWS API의 경우 AWS SDK 및 도구 참조 가이드의 SSO 보안 인증 정보에 나와 있는 지침을 따르세요. |
IAM 사용자 | 단기 보안 인증 정보를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 직접 또는 AWS SDK를 사용하여 서명하려 합니다. | AWS 리소스로 임시 보안 인증 정보 사용에 나와 있는 지침을 따르세요. |
IAM 사용자 | 장기 보안 인증 정보를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 직접 또는 AWS SDK를 사용하여 서명할 수 있습니다. (권장되지 않음) |
IAM 사용자 액세스 키 관리에 나와 있는 지침을 따르세요. |
페더레이션 사용자 | AWS STS API 작업을 사용하여 액세스 키 페어 및 세션 토큰을 포함하는 임시 보안 인증 정보로 새 세션을 생성합니다. | API 작업에 대한 설명은 임시 보안 자격 증명 요청 섹션을 참조하세요. |