IAM 자격 증명과 자격 증명 비교하기

IAM 자격 증명과 자격 증명 비교하기

AWS Identity and Access Management(IAM)에서 관리하는 자격 증명은 IAM 사용자, IAM 역할, IAM 그룹이에요. 이 자격 증명들은 AWS 계정과 함께 AWS가 만들어 준 루트 사용자에 더해서 존재해요. 일상 작업(관리 작업 포함)에는 루트 사용자를 쓰지 말 것을 강력히 권장해요. 대신 추가 사용자를 프로비저닝하고 필요한 작업을 수행하는 데 필요한 권한을 부여하세요. 이번 글에서는 IAM 자격 증명의 개념과 용어, IAM 사용자와 IAM Identity Center 사용자의 차이, 페더레이션 방식을 살펴볼게요.

출처: 문서

본문

사용자를 추가하는 방법은 IAM Identity Center 디렉터리에 사람을 추가하거나, 외부 자격 증명 공급자를 IAM Identity Center나 IAM과 페더레이션하거나, 최소 권한 IAM 사용자를 만드는 방식이에요.

추가 보안을 위해 AWS Organizations로 관리하는 AWS 계정의 루트 사용자 자격 증명을 중앙에서 안전하게 관리하는 루트 접근 중앙 관리를 권장해요. 구성원 계정의 루트 접근을 중앙에서 관리하면 장기 루트 사용자 자격 증명 복구를 중앙에서 제거·방지할 수 있어, 의도하지 않은 대규모 루트 접근을 막아 줘요. 중앙 관리 루트 접근을 활성화하면 권한 있는 세션을 맡아 구성원 계정에서 작업을 수행할 수 있어요.

사용자 설정을 마치면 AWS 계정에 특정 사람들의 접근을 허용하고 리소스 접근 권한을 부여할 수 있어요. 모범 사례에 따라 휴먼 사용자는 임시 자격 증명을 사용하도록 IAM 역할을 맡아 AWS에 접근하는 것을 요구하는 걸 권장해요. IAM Identity Center 디렉터리에서 자격 증명을 관리하거나 자격 증명 공급자와 페더레이션을 사용한다면 모범 사례를 따르고 있는 거예요.

용어 (Terms)

IAM 자격 증명 작업에서 자주 쓰는 용어예요.

  • IAM 리소스 (IAM Resource) – IAM 서비스가 저장하는 리소스예요. 콘솔에서 추가·편집·제거할 수 있어요. 예: IAM 사용자, IAM 그룹, IAM 역할, 권한 정책, 자격 증명 공급자 객체.
  • IAM 엔터티 (IAM Entity) – AWS가 인증에 사용하는 IAM 리소스예요. 리소스 기반 정책에서 엔터티를 Principal로 지정해요. 예: IAM 사용자, IAM 역할.
  • IAM 자격 증명 (IAM Identity) – 정책에서 액션을 수행하고 리소스에 접근하도록 승인된 IAM 리소스예요. 자격 증명에는 IAM 사용자, IAM 그룹, IAM 역할이 포함돼요.
  • 프린시펄 (Principals) – AWS 리소스에 액션 또는 작업 요청을 할 수 있는 AWS 계정 루트 사용자, IAM 사용자, 또는 IAM 역할이에요. 프린시펄에는 휴먼 사용자, 워크로드, 페더레이션 프린시펄, 맡은 역할이 포함돼요. 인증 후 IAM은 프린시펄 유형에 따라 영구 또는 임시 자격 증명을 부여해요.
    • 휴먼 사용자(Human users) 는 휴먼 자격 증명(human identities) 이라고도 하며, 애플리케이션의 사용자, 관리자, 개발자, 운영자, 소비자 같은 사람들이에요.
    • 워크로드(Workloads) 는 비즈니스 가치를 제공하는 리소스와 코드의 모음으로, 애플리케이션, 프로세스, 운영 도구, 기타 구성 요소가 포함돼요.
    • 페더레이션 프린시펄(Federated principals) 은 자격 증명과 자격 증명이 Active Directory, Okta, Microsoft Entra 같은 다른 자격 증명 공급자가 관리하는 사용자예요.
    • IAM 역할 은 계정에서 만들 수 있는 IAM 자격 증명으로, 해당 자격 증명이 할 수 있고 할 수 없는 것을 결정하는 특정 권한을 가져요. 특정 한 사람과 고유하게 연결되는 대신, 역할이 필요한 사람은 누구나 맡을 수 있도록 설계됐어요.

IAM은 IAM 사용자와 루트 사용자에게 장기 자격 증명을, IAM 역할에게 임시 자격 증명을 부여해요. AWS IAM Identity Center의 사용자, OIDC·SAML 페더레이션 프린시펄은 AWS에 로그인할 때 IAM 역할을 맡아 임시 자격 증명을 부여받아요. 모범 사례에 따라 휴먼 사용자와 워크로드가 임시 자격 증명으로 AWS 리소스에 접근하도록 요구하는 걸 권장해요.

IAM 사용자와 IAM Identity Center 사용자의 차이 (Difference between IAM users and users in IAM Identity Center)

IAM 사용자는 별도의 계정이 아니라 계정 내의 개별 사용자예요. 각 사용자는 AWS Management Console 접근을 위한 자기 비밀번호가 있어요. 계정의 리소스를 다루기 위해 프로그래밍 방식 요청을 할 수 있도록 각 사용자마다 개별 액세스 키를 만들 수도 있어요.

IAM 사용자와 그 액세스 키는 AWS 리소스에 대한 장기 자격 증명을 가져요. IAM 사용자의 주요 용도는 IAM 역할을 사용할 수 없는 워크로드가 API나 CLI를 사용해 AWS 서비스에 프로그래밍 방식 요청을 할 수 있게 하는 거예요.

참고 — 프로그래밍 접근과 장기 자격 증명이 필요한 IAM 사용자 시나리오에서는 필요할 때 액세스 키를 업데이트하는 걸 권장해요. 자세한 내용은 액세스 키 업데이트를 참고하세요.

워크포스 자격 증명(사람)은 AWS IAM Identity Center의 사용자로, 수행하는 역할에 따라 권한 요구 사항이 다르고 조직의 여러 AWS 계정에서 작업할 수 있어요. 액세스 키가 필요한 사용 사례가 있다면 AWS IAM Identity Center의 사용자로 지원할 수 있어요. AWS 액세스 포털로 로그인하는 사람은 AWS 리소스에 대한 단기 자격 증명 액세스 키를 얻을 수 있어요. 중앙 집중식 접근 관리에는 AWS IAM Identity Center(IAM Identity Center)를 사용해 계정 및 계정 내 권한에 대한 접근을 관리하는 걸 권장해요. IAM Identity Center는 기본 자격 증명 소스로 Identity Center 디렉터리가 자동 구성되며, 여기에 사람과 그룹을 추가하고 AWS 리소스에 대한 접근 수준을 할당할 수 있어요. 자세한 내용은 _AWS IAM Identity Center 사용자 가이드_의 AWS IAM Identity Center란 무엇인가요?를 참고하세요.

이 두 사용자 유형의 주요 차이는, IAM Identity Center의 사용자는 AWS에 로그인할 때 관리 콘솔이나 AWS 리소스에 접근하기 전에 자동으로 IAM 역할을 맡는다는 거예요. IAM 역할은 사용자가 AWS에 로그인할 때마다 임시 자격 증명을 부여해요. IAM 사용자가 IAM 역할로 로그인하려면 역할 맡기·전환 권한이 있어야 하고, AWS 계정에 접근한 뒤 명시적으로 맡으려는 역할로 전환을 선택해야 해요.

기존 자격 증명 소스에서 사용자 페더레이션 (Federate users from an existing identity source)

조직의 사용자가 회사 네트워크에 로그인할 때 이미 인증돼 있다면, IAM 사용자나 IAM Identity Center 사용자를 따로 만들 필요가 없어요. 대신 IAM 또는 AWS IAM Identity Center를 사용해 그 사용자 자격 증명을 AWS에 페더레이션 할 수 있어요. OIDC·SAML 페더레이션 프린시펄은 특정 리소스에 접근 권한을 주는 IAM 역할을 맡아요. 역할에 대한 자세한 내용은 역할 용어와 개념을 참고하세요.

페더레이션은 다음 경우에 유용해요.

  • 사용자가 이미 회사 디렉터리에 존재할 때 – 회사 디렉터리가 Security Assertion Markup Language 2.0(SAML 2.0)과 호환된다면, 회사 디렉터리를 구성해 사용자에게 AWS Management Console에 대한 단일 로그온(SSO) 접근을 제공할 수 있어요. 자세한 내용은 임시 자격 증명의 일반 시나리오를 참고하세요. SAML 2.0과 호환되지 않는다면 자격 증명 브로커 애플리케이션을 만들어 AWS Management Console에 대한 SSO 접근을 제공할 수 있어요. 자세한 내용은 사용자 지정 자격 증명 브로커 접근을 AWS 콘솔에 활성화를 참고하세요. 회사 디렉터리가 Microsoft Active Directory라면 AWS IAM Identity Center를 사용해 Active Directory의 자체 관리 디렉터리나 AWS Directory Service의 디렉터리를 연결해 회사 디렉터리와 AWS 계정 간 신뢰를 구축할 수 있어요. Okta나 Microsoft Entra 같은 외부 자격 증명 공급자(IdP)로 사용자를 관리한다면 AWS IAM Identity Center를 사용해 IdP와 AWS 계정 간 신뢰를 구축할 수 있어요. 자세한 내용은 _AWS IAM Identity Center 사용자 가이드_의 외부 자격 증명 공급자 연결을 참고하세요.
  • 사용자가 이미 인터넷 자격 증명을 가질 때 – 사용자가 Login with Amazon, Facebook, Google, 또는 OpenID Connect(OIDC) 호환 자격 증명 공급자 같은 인터넷 자격 증명 공급자로 스스로를 식별하게 하는 모바일 앱이나 웹 기반 앱을 만든다면, 앱은 페더레이션을 사용해 AWS에 접근할 수 있어요. 자세한 내용은 OIDC 페더레이션을 참고하세요.

팁 — 인터넷 자격 증명 공급자와 자격 증명 페더레이션을 사용하려면 Amazon Cognito를 사용하는 걸 권장해요.

사용자 접근을 제공하는 다양한 방법 (Different methods to provide user access)

AWS 리소스에 접근을 제공하는 방법은 다음과 같아요.

사용자 접근 유형 언제 사용하나요? 더 자세한 정보
IAM Identity Center로 사람(워크포스 사용자 등)에게 AWS 리소스에 대한 단일 로그온 접근 IAM Identity Center는 사용자와 그 AWS 계정·클라우드 애플리케이션 접근 관리를 한곳에 모아 주는 중앙 장소를 제공해요. IAM Identity Center 내에 자격 증명 저장소를 설정하거나 기존 자격 증명 공급자(IdP)와 페더레이션을 구성할 수 있어요. 보안 모범 사례는 휴먼 사용자에게 AWS 리소스에 대한 제한된 자격 증명을 부여하는 걸 권장해요. 사람들의 로그인 경험이 쉬워지고, 단일 시스템에서 리소스 접근을 제어할 수 있어요. IAM Identity Center는 추가 계정 보안을 위한 다중 인증(MFA)을 지원해요. _AWS IAM Identity Center 사용자 가이드_의 시작하기 및 MFA 사용 방법
IAM ID 공급자(IdP)로 휴먼 사용자(워크포스 등)에게 AWS 서비스에 대한 페더레이션 접근 IAM은 OpenID Connect(OIDC) 또는 SAML 2.0과 호환되는 IdP를 지원해요. IAM 자격 증명 공급자를 만든 뒤 페더레이션 프린시펄에 동적으로 할당할 수 있는 IAM 역할을 하나 이상 만들어요. IAM 자격 증명 공급자와 페더레이션에 대한 자세한 내용
AWS 계정 간 계정 간 접근 다른 AWS 계정의 사용자와 특정 AWS 리소스 접근을 공유하려는 경우에 사용해요. 역할이 계정 간 접근을 부여하는 주요 방법이에요. 다만 일부 AWS 서비스는 역할을 프록시로 쓰는 대신 리소스에 정책을 직접 연결할 수 있는 리소스 기반 정책을 지원해요. IAM 역할, 서비스 연결 역할 생성, 서비스 연결 역할 지원 서비스 목록은 IAM과 함께 작동하는 AWS 서비스에서 확인 (Service-Linked Role 열에 Yes인 서비스)
AWS 계정의 지정된 IAM 사용자에 대한 장기 자격 증명 AWS에서 IAM 사용자와 함께 장기 자격 증명이 필요한 특정 사용 사례가 있을 때 사용해요. IAM으로 이러한 IAM 사용자를 만들고 권한을 관리할 수 있어요. 사용 사례: IAM 역할을 사용할 수 없는 워크로드, 액세스 키로 프로그래밍 방식 접근이 필요한 타사 AWS 클라이언트, AWS CodeCommit이나 Amazon Keyspaces용 서비스별 자격 증명, 계정에 IAM Identity Center를 쓸 수 없고 다른 IdP도 없는 경우. 프로그래밍 접근·장기 자격 증명이 필요한 IAM 사용자 시나리오에서는 필요할 때 액세스 키를 업데이트하는 걸 권장해요. AWS 계정에 IAM 사용자 생성, IAM 사용자 액세스 키 관리, AWS CodeCommit·Amazon Keyspaces 자격 증명 관련 문서

프로그래밍 사용자 접근 지원 (Support programmatic user access)

사용자가 AWS Management Console 밖에서 AWS와 상호작용하려면 프로그래밍 방식 접근(programmatic access)이 필요해요. 프로그래밍 접근을 부여하는 방법은 AWS에 접근하는 사용자 유형에 따라 달라져요.

  • IAM Identity Center에서 자격 증명을 관리한다면, AWS API는 프로필이 필요하고 AWS Command Line Interface는 프로필 또는 환경 변수가 필요해요.
  • IAM 사용자가 있다면, AWS API와 AWS Command Line Interface는 액세스 키가 필요해요. 가능하면 액세스 키 ID, 시크릿 액세스 키, 만료 시기를 나타내는 보안 토큰으로 구성된 임시 자격 증명을 만들어 사용하세요.

사용자에게 프로그래밍 접근을 부여하려면 다음 옵션 중 하나를 선택하세요.

어떤 사용자가 프로그래밍 접근이 필요한가요? 옵션 더 자세한 정보
워크포스 자격 증명 (IAM Identity Center에서 관리되는 사람·사용자) AWS CLI 또는 AWS API에 대한 프로그래밍 요청을 서명하는 데 단기 자격 증명을 사용해요(AWS SDK로 직접 또는 간접). _AWS IAM Identity Center 사용자 가이드_의 CLI 접근용 IAM 역할 자격 증명 가져오기, _AWS SDKs and Tools Reference Guide_의 SSO 자격 증명
IAM 사용자 AWS CLI 또는 AWS API에 대한 프로그래밍 요청을 서명하는 데 단기 자격 증명을 사용해요. AWS 리소스와 함께 임시 자격 증명 사용
IAM 사용자 AWS CLI 또는 AWS API에 대한 프로그래밍 요청을 서명하는 데 장기 자격 증명을 사용해요(권장하지 않음). IAM 사용자용 액세스 키 관리
페더레이션 프린시펄 AWS STS API 작업으로 액세스 키 쌍과 세션 토큰을 포함하는 임시 보안 자격 증명으로 새 세션을 만들어요. 임시 보안 자격 증명 요청

더 알아보기 (Learn more)