본문 바로가기

개발자정보

1.3 AWS Identity and Access Management

반응형

AWS ID 및 액세스 관리에 대해 알아보기

학습목표

이 단원을 완료하면 다음을 수행 할 수 있습니다:

  • AWS ID 및 액세스 관리(IAM)의 용도를 설명합니다.
  • IAM의 기능을 설명합니다.

메모

이 모듈은 여기에 설명된 AWS 제품, 서비스 및 기능을 소유, 지원 및 유지 관리하는 Amazon Web Services(AWS)와 협력하여 제작되었습니다. 

 

AWS 제품, 서비스 및 기능의 사용에는 AWS가 유지 관리하는 개인 정보 보호 정책 및 서비스 계약이 적용됩니다. 

 

AWS 클라우드의 보안에서 AWS 계정을 설정하고 다단계 인증(MFA)으로 AWS 루트 사용자를 보호했습니다. AWS 모범 사례를 따르고 있지만 고양이 사진 공유 애플리케이션을 구축하려는 목표에서 벗어나 지금 스스로에게 묻고 있는 것 같습니다.

  • AWS 루트 사용자를 사용하여 애플리케이션에 대한 AWS 리소스를 구축 및 관리하지 않아야 하는 경우 대신 어떤 자격 증명을 사용해야 합니까?
  • 개발자, 보안 전문가 및 추가 관리자와 같은 다른 사용자가 내 애플리케이션을 구축하는 데 도움을 줄 경우 자격 증명을 공유하지 않고 내 계정에 대한 액세스 권한을 부여하려면 어떻게 해야 합니까?

IAM은 이 두 가지 문제를 모두 해결합니다.

IAM이란 무엇입니까?

IAM은 AWS 계정 및 리소스에 대한 액세스를 관리할 수 있는 웹 서비스입니다. 또한 AWS 계정 내에서 누구와 무엇을 허용하는지(인증), AWS 리소스를 사용하고 작업할 수 있는 권한이 있는 사람과 대상(승인)에 대한 중앙 집중식 보기를 제공합니다.

 

IAM을 사용하면 액세스 키 또는 암호 세트를 공유하지 않고도 AWS 계정 및 리소스에 대한 액세스를 공유할 수 있습니다. 

사용자와 서비스가 필요한 리소스에 대해서만 권한을 갖도록 계정에서 작업하는 사람들에게 세분화된 액세스 권한을 제공할 수도 있습니다. 

 

예를 들어 AWS 계정의 사용자에게 특정 AWS 서비스에 대한 읽기 전용 액세스 권한을 제공하기 위해 해당 서비스에서 액세스할 수 있는 작업과 리소스를 세부적으로 선택할 수 있습니다.

IAM 기능 알아보기

AWS 계정 내에서 액세스를 제어하고 자격 증명을 관리할 수 있도록 IAM은 보안을 보장하는 많은 기능을 제공합니다.

  • IAM은 전역적이며 한 리전에 국한되지 않습니다. 즉, AWS Management 콘솔의 모든 리전에서 IAM 구성을 보고 사용할 수 있습니다.
  • IAM은  기본적 으로 많은 AWS 서비스와 통합됩니다 .
  • IAM에서 암호 정책을 설정하여 사용자에 대한 복잡성 요구 사항 및 필수 교체 기간을 지정할 수 있습니다.
  • IAM은 MFA를 지원합니다 .
  • IAM은 이미 다른 곳(예: 회사 네트워크 또는 인터넷 자격 증명 공급자)에 암호가 있는 사용자가 AWS 계정에 임시로 액세스할 수 있도록 하는 자격 증명 연동을 지원합니다.
  • 모든 AWS 고객은 IAM을 사용할 수 있습니다. 서비스는 추가 비용 없이 제공됩니다.

IAM 마무리

단원을 시작할 때 두 가지 질문이 있었습니다.

  • AWS 루트 사용자를 사용하여 애플리케이션에 대한 AWS 리소스를 구축 및 관리하지 않아야 하는 경우 대신 어떤 자격 증명을 사용해야 합니까?
  • 개발자, 보안 전문가 및 추가 관리자와 같은 다른 사용자가 내 애플리케이션을 구축하는 데 도움을 줄 경우 자격 증명을 공유하지 않고 내 계정에 대한 액세스 권한을 부여하려면 어떻게 해야 합니까?

IAM은 전체 AWS 계정에서 모든 인증 및 권한 부여 프로세스를 관리합니다. IAM을 사용하여 이러한 두 가지 문제를 모두 해결할 수 있지만 여전히 방법에 대한 구체적인 세부 정보가 필요합니다. 다음 단원에서는 IAM 사용자 및 그룹과 함께 이러한 문제를 해결하는 방법을 배웁니다.

Quiz

1True or false: IAM enables you to centrally manage all authentication and authorization access in your AWS account.

A.True

B.False

2What problems does IAM solve when building out the cat photo application?

A.You create and manage resources through individual IAM identities instead of the AWS root user.

B.You can use IAM to provide sign-in and sign-up functionality to interact with your cat photo application.

C.You can use IAM to provide access to multiple developers, security experts, and admins who will be working on the cat photo application in your AWS account.

D.A and B

E.A and C

 

IAM 사용자 및 그룹 관리

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • IAM 사용자의 기능을 설명합니다.
  • IAM 그룹의 용도와 이점을 설명합니다.

루트 사용자 자격 증명을 공유하는 대신 IAM을 사용하는 방법을 알았으므로 여전히 다음 문제가 남아 있습니다.

  • 루트 사용자 대신 사용할 수 있는 ID를 만들고 싶습니다.
  • 다른 사용자에게 귀하의 계정에 대한 액세스 권한을 부여하여 고양이 사진 응용 프로그램에서 작업할 수 있도록 하려고 합니다.

먼저 IAM 사용자 및 그룹의 용어를 살펴보겠습니다.

IAM 사용자란 무엇입니까?

IAM 사용자는 AWS와 상호 작용하는 사람 또는 서비스를 나타냅니다. 

AWS 계정 내에서 사용자를 정의합니다. 그리고 해당 사용자가 수행한 모든 활동은 귀하의 계정으로 청구됩니다. 

사용자를 생성하면 해당 사용자는 로그인하여 계정 내의 AWS 리소스에 액세스할 수 있습니다. 

필요에 따라 계정에 더 많은 사용자를 추가할 수도 있습니다. 

예를 들어 고양이 사진 애플리케이션의 경우 애플리케이션에서 작업하는 사람들에 해당하는 개별 사용자를 AWS 계정에 생성할 수 있습니다. 

각 사람은 고유한 로그인 자격 증명을 가지고 있어야 합니다. 

사용자에게 고유한 로그인 자격 증명을 제공하면 자격 증명 공유가 방지됩니다.

IAM 사용자 자격 증명

IAM 사용자는 이름과 자격 증명 세트로 구성됩니다. 

사용자를 생성할 때 사용자에게 다음을 제공하도록 선택할 수 있습니다.

  • AWS Management 콘솔에 대한 액세스
  • AWS 명령줄 인터페이스(AWS CLI) 및 AWS 애플리케이션 프로그래밍 인터페이스(AWS API)에 대한 프로그래밍 방식 액세스

AWS Management 콘솔에 액세스하려면 사용자에게 사용자 이름과 암호를 제공합니다. 

프로그래밍 방식 액세스의 경우 AWS는 AWS CLI 및 AWS API와 함께 사용할 수 있는 액세스 키 세트를 생성합니다. 

IAM 사용자 자격 증명은 관리자가 강제로 교체할 때까지 사용자와 함께 유지된다는 점에서 영구적인 것으로 간주됩니다.

IAM 사용자를 생성할 때 사용자 수준에서 직접 권한을 부여할 수 있는 옵션이 있습니다. 

사용자가 한 명 또는 소수인 경우에 좋은 아이디어처럼 보일 수 있습니다. 그러나 고양이 사진 응용 프로그램을 만드는 데 도움이 되는 사용자의 수가 증가함에 따라 권한을 유지하는 것이 더 복잡해집니다. 

 

예를 들어 AWS 계정에 3,000명의 사용자가 있는 경우 액세스 관리가 어려워지고 누가 어떤 리소스에 대해 어떤 작업을 수행할 수 있는지에 대한 최상위 보기를 얻는 것은 불가능합니다.

 

IAM 사용자를 그룹화하고 대신 그룹 수준에서 권한을 연결하는 방법이 있다면. 추측: 거기에!

IAM 그룹이란 무엇입니까?

IAM 그룹은 사용자 모음입니다. 

그룹의 모든 사용자는 그룹에 할당된 권한을 상속합니다. 

이렇게 하면 한 번에 여러 사용자에게 권한을 쉽게 부여할 수 있습니다. 

AWS 계정의 사용자에 대한 권한을 관리하는 더 편리하고 확장 가능한 방법입니다. 

이것이 IAM 그룹을 사용하는 것이 모범 사례인 이유입니다. 

 

구축하려는 고양이 사진 응용 프로그램이 있고 응용 프로그램에서 작업하는 한 계정에 여러 사용자가 있는 경우 이러한 사용자를 직무별로 구성하기로 결정할 수 있습니다. 

 

개발자, 보안 및 관리자별로 구성된 IAM 그룹이 필요할 수 있습니다. 그런 다음 모든 IAM 사용자를 직무에 따라 해당 그룹에 배치합니다.

 

이렇게 하면 조직 내에서 누가 어떤 권한을 가지고 있는지 더 잘 볼 수 있고 새로운 사람이 조직에 합류, 탈퇴 및 역할을 변경할 때 더 쉽게 확장할 수 있습니다.

 다음 예를 고려하십시오.

  • 새로운 개발자가 AWS 계정에 가입하여 애플리케이션을 지원합니다. 어떤 권한이 필요한지 생각할 필요 없이 새 사용자를 만들고 개발자 그룹에 추가하기만 하면 됩니다.
  • 개발자는 직업을 바꾸고 보안 엔지니어가 됩니다. 사용자의 권한을 직접 편집하는 대신 이전 그룹에서 제거하고 이미 올바른 수준의 액세스 권한이 있는 새 그룹에 추가할 수 있습니다.

그룹의 다음 기능을 염두에 두십시오.

  • 그룹에는 많은 사용자가 있을 수 있습니다.
  • 사용자는 여러 그룹에 속할 수 있습니다.
  • 그룹은 그룹에 속할 수 없습니다.

마무리

이제 IAM 사용자 및 그룹의 내용을 이해했으므로 단원의 시작 부분부터 문제를 해결할 수 있습니다.

  • AWS 루트 사용자 대신 관리자 권한이 있는 IAM 그룹 내 IAM 사용자를 사용하십시오(계정에서 모든 작업을 수행할 수 있는 권한이 있음을 의미).
  • 고양이 사진 응용 프로그램에서 작업하기 위해 계정에 추가 사용자를 추가하려는 경우 새 사용자를 만들고 직무에 해당하는 그룹에 추가할 수 있습니다.

다음 단원에서는 IAM 역할을 사용한 다른 인증 방법을 알아봅니다.

 

Quiz

1. True or false: For IAM user credentials, you must have both a password and a set of access keys.

A.True

B.False

 

2. Which of the following is a characteristic of IAM groups?

A. A group can have multiple IAM users.

B. An IAM group can contain other AWS groups.

C. An IAM user can belong to multiple groups.

D. A and B

E. A and C

 

 

 

IAM 역할 이해

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • IAM 역할의 사용 및 기능을 설명합니다.
  • IAM 역할과 IAM 사용자의 차이점을 설명합니다.

 

AWS에서 사용자는 AWS 서비스나 애플리케이션과 같은 사람 또는 기계가 될 수 있습니다. 

 

AWS 스토리지 서비스에 액세스해야 하는 AWS 컴퓨팅 서비스에서 실행 중인 고양이 사진 애플리케이션이 있는 시나리오를 고려하십시오. 

 

고양이 사진 응용 프로그램에는 기본적으로 인증 또는 권한 부여가 없으므로 이 저장 서비스에 액세스하는 데 필요한 자격 증명을 제공해야 합니다.

 

이전 단원에서 애플리케이션에 대한 IAM 사용자를 생성하고 사용자의 액세스 키를 애플리케이션에 하드코딩하여 인증을 제공할 수 있다는 것을 배웠습니다. 그러나 이것은 몇 가지 보안 취약점을 만듭니다.

  • 이러한 키는 잊어버릴 수 있고 순환되지 않을 수 있습니다(좋은 보안에는 때때로 암호 변경이 포함됨).
  • 이러한 키는 해커 또는 기타 악의적인 행위자가 탐지하고 악용할 수 있습니다. 악의적인 행위자가 애플리케이션을 악용하고 이러한 액세스 키를 가져오면 AWS 계정과 리소스에 액세스할 수 있습니다.

따라서 액세스 키를 애플리케이션에 전달하거나 하드코딩하면 안 되는 경우 앱에 보안 자격 증명을 제공하려면 어떻게 해야 할까요? 이를 위해 IAM 역할을 사용하여 임시 보안 자격 증명을 제공할 수 있습니다.

IAM 역할이란 무엇입니까?

IAM 사용자와 달리 IAM 역할은 임시 자격 증명을 제공하며 특정 사람이나 사물과 연결되지 않습니다. 

대신 IAM 사용자, 애플리케이션 또는 AWS 서비스와 같은 신뢰할 수 있는 엔터티가 역할을 맡습니다. 

역할을 맡는다는 것은 역할과 연관된 임시 자격 증명 세트를 얻는 것을 의미합니다.

IAM 사용자와 IAM 역할의 차이점은 무엇입니까?

IAM 사용자와 IAM 역할은 모두 AWS 서비스에 대한 액세스 권한을 부여하는 데 사용되는 IAM 자격 증명이라는 점에서 유사합니다. 그러나 차이점이 있습니다. 예를 들어:

  • 사용자와 같은 한 사람과 고유하게 연결되는 대신 역할을 필요로 하는 모든 사람이 역할을 맡을 수 있습니다.
  • 역할에는 연결된 암호 또는 액세스 키와 같은 표준 장기 자격 증명이 없습니다. 대신 역할을 맡을 때 구성 가능한 기간 동안 임시 보안 자격 증명(액세스 키)을 제공합니다.
  • 키가 더 자주 교체되도록 역할이 만료되는 시기를 15분에서 36시간 사이로 정의합니다.

IAM 역할 수임

IAM 사용자에 대한 역할을 사용하려는 몇 가지 시나리오가 있습니다. 

이 단원에서 우리는 이미 이러한 시나리오 중 하나인 고양이 사진 애플리케이션에 대해 AWS 컴퓨팅 서비스에서 호스팅하고 역할을 수임하고 AWS 스토리지 서비스에 액세스하기 위한 임시 보안 자격 증명을 받는 것에 대해 이야기했습니다.

또 다른 일반적인 시나리오는 사용자가 동일한 계정의 역할을 맡아 작업에 대해 서로 다른 권한을 부여하는 것입니다. 

 

예를 들어 고양이 사진 응용 프로그램에서 작업하는 세 명의 사용자(개발자, 관리자, 보안 엔지니어)를 살펴보겠습니다. 

보안 엔지니어가 일주일 동안 휴가를 가는데 대신할 사람이 없습니다. 

개발자인 John은 한 주 동안 자신의 일을 맡아 수행하기로 결정합니다. 

보안 엔지니어 권한을 부여할 수 있는 몇 가지 옵션이 있습니다.

 

옵션 1 : 개발자 그룹에 직접 보안 권한을 추가할 수 있습니다.

그러나 해당 그룹의 모든 개발자는 이러한 보안 권한을 갖습니다. 

 

 

옵션 2 : 사용자 자신에게 직접 보안 권한을 추가할 수 있습니다.

그러나 John을 그룹에 포함시키고 조직과 확장성을 잃게 되는 목적을 무산시키고 있습니다. 

 

옵션 3 : 보안 그룹의 권한을 상속하는 개발자 그룹에 대한 새 사용자를 생성할 수 있습니다.

John은 이제 두 세트의 사용자 이름과 암호와 두 세트의 액세스 키(개발자 사용자 자격 증명 및 새 보안 사용자 자격 증명)를 유지 관리해야 하기 때문에 문제가 됩니다. 

 

옵션 4 : 역할을 생성할 수 있습니다. 

개발자가 보안 엔지니어의 작업을 수행해야 하는 경우 개발자는 보안 역할을 맡아 필요한 작업을 수행한 다음 완료되면 개발자 사용자로 다시 전환할 수 있습니다.

옵션 4가 올바른 선택입니다. 개발자가 여러 자격 증명 집합을 관리해야 하는 것을 방지하고 사용자의 확장성과 조직을 유지 관리하며 필요하지 않은 다른 사람에게 권한을 부여하지 않습니다. 

사용자는 AWS Management 콘솔을 사용하여 일시적으로 역할을 맡을 수 있습니다. 그런 다음 사용자는 원래 권한을 포기하고 역할에 할당된 권한을 맡습니다. 사용자가 역할을 종료하면 원래 사용자 권한으로 정의된 리소스에만 액세스할 수 있습니다.

역할에 대한 두 가지 사용 사례가 더 있습니다.

  • 교차 계정 액세스 : 여러 AWS 계정을 소유하고 있는 경우 한 계정의 사용자가 두 번째 AWS 계정의 리소스에 액세스해야 하는 시나리오가 발생할 수 있습니다. 두 번째 AWS 계정의 리소스에 대한 액세스 권한을 부여하려면 역할을 사용하여 해당 사용자에게 액세스 권한을 제공해야 합니다.
  • 페더레이션 : 사용자는 이미 회사 디렉터리와 같이 AWS 외부에 자격 증명을 가지고 있을 수 있습니다. 해당 사용자가 AWS 리소스로 작업해야 하는 경우(또는 해당 리소스에 액세스하는 앱으로 작업해야 하는 경우) 해당 사용자에게도 AWS 보안 자격 증명이 필요합니다. 회사 디렉터리(또는 다른 자격 증명 공급자)에서 연동된 자격 증명은 IAM 역할을 사용하여 AWS Management 콘솔에 액세스할 수 있습니다.

마무리

IAM 역할은 애플리케이션, IAM 사용자 및 AWS 서비스에 임시 자격 증명을 제공합니다. 이를 통해 액세스 제어로 최소 권한을 유지하고 키 순환 부담을 줄일 수 있습니다. 다음 단원에서는 IAM 자격 증명을 인증하고 IAM 사용자, 그룹 및 역할에 권한을 부여하는 방법을 알아봅니다.

 

Quiz

1True or false: An IAM role provides long-term credentials in the form of user name and password that sticks with the role until a forced rotation by an admin.

A.True

B.False

2Users in your company are authenticated in your corporate network and want to be able to use AWS without having to sign in again. Which AWS authentication option should you use?

A.AWS root user

B.IAM user

C.IAM group

D.IAM role

 

 

IAM 정책 설정

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • IAM 정책 및 사용 방법을 설명합니다.
  • IAM 정책의 핵심 요소를 설명합니다.

루트 사용자는 기본적으로 AWS 계정 내의 모든 리소스에 대해 모든 작업을 수행할 수 있습니다. 이는 새 IAM 사용자, 새 그룹 또는 새 역할을 생성하는 것과 대조됩니다. 새 IAM 자격 증명은 사용자가 명시적으로 권한을 부여할 때까지 기본적으로 AWS 계정 내에서 어떤 작업도 수행할 수 없습니다.

IAM에서 권한을 부여하는 방법은 IAM 정책을 사용하는 것입니다.

IAM 정책이란 무엇입니까?

AWS 서비스 및 리소스에 대한 액세스를 관리하고 권한을 제공하려면 IAM 정책을 생성하고 이를 IAM 사용자, 그룹 및 역할에 연결합니다. 사용자 또는 역할이 요청할 때마다 AWS는 관련 정책을 평가합니다. 예를 들어, AWS 서비스에 요청하는 개발자 그룹 내에 개발자가 있는 경우 AWS는 개발자 그룹에 연결된 모든 정책과 개발자 사용자에게 연결된 정책을 평가하여 요청을 허용할지 거부할지 결정합니다.

IAM 정책 예시

대부분의 정책은 여러 정책 요소가 포함된 JSON 문서로 AWS에 저장됩니다. IAM 자격 증명 기반 정책을 통해 관리자 액세스를 제공하는 방법에 대한 다음 예를 살펴보십시오.

{ 
  "Version" "2012-10-17", 
  "Statement" [ 
      { 
        "Effect" "Allow", 
        "Action" "*", 
        "Resource": "*" 
      } 
      ] 
}

이 정책에는 Version, Effect, Action, Resource의 네 가지 주요 JSON 요소가 있습니다.

  • 버전 요소는 정책 언어의 버전을 정의합니다. AWS에서 정책을 처리하는 데 필요한 언어 구문 규칙을 지정합니다. 사용 가능한 모든 정책 기능을 사용하려면 모든 정책 "Version": "2012-10-17" 에서 "Statement"요소 앞에 포함 하십시오.
  • 효과 문 액세스를 허용하거나 거부 할 여부 요소를 지정합니다. 이 정책에서 효과는 "Allow"특정 리소스에 대한 액세스를 제공한다는 의미입니다.
  • 액션 요소는 허용 또는 거부해야 행동의 유형을 설명합니다. 위의 정책에서 조치는 "*"입니다. 이것을 와일드카드라고 하며 AWS 계정 내의 모든 작업을 상징하는 데 사용됩니다.
  • 자원 요소는 개체를 지정하거나 정책 성명 커버 것을 객체. 위의 정책 예에서 리소스는 와일드카드이기도 합니다 "*". 이는 AWS 콘솔 내부의 모든 리소스를 나타냅니다.

 이 모든 정보를 종합하면 AWS 계정 내의 모든 리소스  대해 모든 작업 을 수행할  있는 정책이 있습니다 . 이를 관리자 정책이라고 합니다. 

보다 세분화된 IAM 정책의 또 다른 예를 살펴보겠습니다.

{ 
  "Version":"2012-10-17", 
  "Statement":[ { 
                      "Effect":"Allow", 
                      "Action": [ 
                           "iam: ChangePassword", 
                           "iam: GetUser" 
                                  ] 
                    "Resource":"arn:aws:iam::123456789012:user/${aws:username}" 
  } 
  ]
}

JSON을 살펴보면 이 정책 이 IAM 사용자가 자신의 IAM 암호  변경하고 ( ) 자신의 사용자에 대한 정보를 얻을 수 있도록 허용 한다는 것을 알 수 있습니다 ( ). 리소스가 변수 대체를 사용하여 액세스를 제한하기 때문에 자신의 자격 증명에만 액세스할 수 있습니다 

 

iam:ChangePasswordiam:GetUser${aws:username}

정책 구조 이해

정책을 생성할 때 정책 설명 안에 다음 요소가 각각 있어야 합니다. 

요소설명필수의예시

효과 명령문이 허용 또는 명시적 거부를 초래하는지 여부를 지정합니다. "Effect": "Deny"
동작 허용되거나 거부될 특정 작업을 설명합니다. "Action": "iam:CreateUser"
자원 명령문이 다루는 개체를 지정합니다. "Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"

마무리

IAM 정책을 사용하면 권한을 관리하고 IAM 사용자, 역할 및 그룹에 권한을 부여할 수 있습니다. AWS 루트 사용자는 다르며 IAM 정책으로 권한을 부여하거나 제한할 수 없습니다. 다음 단원에서는 IAM 모범 사례를 검토하고 IAM의 대안에 대해 알아봅니다.

 

 

 

Quiz

1. Which of the following can be found in an IAM policy?

A.Effect

B.Action

C.Object

D.A and B

E.B and C

2True or false: IAM policies can restrict the actions of the AWS root user.

A.True

B.False

 

IAM 모범 사례 따르기

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • IAM 모범 사례를 따르십시오.
  • ID 공급자의 목적을 설명합니다.
  • AWS Single Sign-On(SSO)의 기능과 특징을 설명합니다.

이 모듈 전체에 걸쳐 IAM 모범 사례가 흩어져 있습니다. 고양이 사진 애플리케이션을 구축하기 전에 숙지해야 하는 가장 중요한 IAM 모범 사례에 대한 간략한 요약이 있으면 도움이 됩니다.

AWS 루트 사용자 잠금

루트 사용자는 AWS 계정 내에서 전능하고 모든 것을 알고 있는 자격 증명입니다. 악의적인 사용자가 루트 사용자 자격 증명을 제어하게 되면 개인 및 청구 정보를 포함하여 계정 내의 모든 리소스에 액세스할 수 있습니다. 루트 사용자를 잠그려면:

  • 루트 사용자와 연결된 자격 증명을 공유하지 마십시오.
  • 루트 사용자 액세스 키 삭제를 고려하십시오.
  • 루트 계정에서 MFA를 활성화합니다.

최소 권한 원칙 준수

최소 권한은 특정 작업을 수행하는 데 필요한 권한만 부여하고 그 이상은 부여하지 않는 표준 보안 원칙입니다. 액세스 제어를 위한 최소 권한을 구현하려면 IAM 정책에서 최소 권한 집합으로 시작한 다음 사용자, 그룹 또는 역할에 필요한 추가 권한을 부여합니다.

IAM을 적절하게 사용

IAM은 AWS 계정 및 리소스에 대한 액세스를 보호하는 데 사용됩니다. 단일 AWS 계정 내에서 리소스에 액세스하기 위해 사용자, 그룹 및 역할을 생성하고 관리하는 방법을 제공합니다. IAM은 웹사이트 사용자에게 로그인 및 가입 기능을 제공하는 것과 같은 웹사이트 인증 및 권한 부여에 사용 되지 않습니다 . 또한 IAM은 운영 체제 및 네트워크를 보호하기 위한 보안 제어를 지원 하지 않습니다 .

가능한 경우 IAM 역할 사용

역할을 유지하는 것이 사용자를 유지하는 것보다 쉽습니다. 역할을 수임하면 IAM은 15분에서 36시간 사이의 정의된 기간 후에 만료되는 임시 자격 증명을 동적으로 제공합니다. 반면에 사용자는 사용자 이름과 암호 조합 또는 액세스 키 집합 형태의 장기 자격 증명을 가지고 있습니다.

사용자 액세스 키는 귀하 또는 귀하의 계정 관리자가 이러한 키를 교체할 때만 만료됩니다. 사용자가 암호를 교체하도록 하는 암호 정책을 계정에 적용한 경우 사용자 로그인 자격 증명이 만료됩니다.

아이덴티티 공급자 사용 고려

고양이 사진 응용 프로그램을 비즈니스로 만들기로 결정하고 소수 이상의 사람들이 작업하기 시작했다면 ID 제공자(IdP)를 통해 직원 ID 정보를 관리하는 것이 좋습니다. AWS Single Sign-On(SSO)과 같은 AWS 서비스이든 타사 자격 증명 공급자이든 IdP를 사용하면 조직의 모든 자격 증명에 대한 단일 정보 소스를 제공합니다.

더 이상 AWS에서 별도의 IAM 사용자를 생성할 필요가 없습니다. 대신 IAM 역할을 사용하여 IdP에서 연동된 자격 증명에 권한을 제공할 수 있습니다.

예를 들어, 여러 AWS 계정에 액세스할 수 있는 직원 Martha가 있습니다. 각 AWS 계정에서 Martha라는 IAM 사용자를 여러 명 생성 및 관리하는 대신 회사의 IdP에서 Martha를 관리할 수 있습니다. Martha가 회사 내에서 이사하거나 퇴사하는 경우 보유하고 있는 모든 AWS 계정이 아니라 IdP에서 Martha를 업데이트할 수 있습니다.

AWS SSO 고려

고양이 사진 애플리케이션을 많은 직원과 여러 AWS 계정에 걸쳐 있는 조직으로 전환한 경우 직원이 단일 자격 증명으로 로그인하도록 할 수 있습니다. 

AWS SSO는 사용자가 단일 자격 증명 세트로 사용자 포털에 로그인할 수 있게 해주는 IdP입니다. 그런 다음 하나의 중앙 위치에서 할당된 모든 계정 및 애플리케이션에 대한 액세스를 제공합니다.

AWS SSO는 사용자를 생성하고 그룹으로 구성하고 해당 그룹에 권한을 설정하고 AWS 리소스에 대한 액세스 권한을 부여할 수 있는 디렉터리를 제공한다는 점에서 IAM과 유사합니다. 그러나 AWS SSO는 IAM에 비해 몇 가지 장점이 있습니다. 예를 들어 타사 IdP를 사용하는 경우 사용자 및 그룹을 AWS SSO에 동기화할 수 있습니다.

이렇게 하면 다른 곳에 이미 존재하는 사용자를 다시 생성해야 하는 부담이 없고 IdP에서 해당 사용자를 관리할 수 있습니다. 더 중요한 것은 AWS SSO는 IdP와 AWS 간의 업무를 분리하여 클라우드 액세스 관리가 IdP 내부에 있거나 IdP에 종속되지 않도록 합니다.

마무리

보안이 최우선입니다. 고양이 사진 응용 프로그램을 만들 때 그런 식으로 처리하고 있는지 확인해야 합니다. 모범 사례를 따르고 필요에 맞는 올바른 ID 솔루션을 선택하는지 확인하십시오.

자격 증명을 관리할 때 IAM과 AWS SSO라는 두 가지 기본 자격 증명 솔루션이 있습니다. IAM은 시작하기가 더 쉽지만 여러 AWS 계정에서 IAM 자격 증명을 탐색하는 것은 까다로울 수 있습니다. 반면 AWS SSO를 사용하면 중앙 위치에서 여러 계정에 대한 액세스를 쉽게 관리할 수 있으며 다른 IdP에서 복제된 자격 증명을 포함하여 자격 증명의 허브 역할을 합니다. 보안을 위한 AWS  최근 발표 페이지 에서 새로운 IAM 및 AWS SSO 발표에 대한 최신 정보 를 확인하십시오.

다음 단원에서는 AWS CloudTrail이라는 서비스를 사용하여 AWS 계정의 활동을 감사하고 모니터링하는 방법을 배웁니다.

 

Quiz

1True or false: To implement least privilege for access control, you should begin by providing users the most permissive policy and then restrict as necessary.

A.True

B.False

 

2True or false: With AWS SSO, you can centrally manage SSO access to all your AWS accounts, cloud applications, and custom applications.

A.True

B.False

 

AWS CloudTrail로 계정 활동 감사

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • AWS CloudTrail의 기능과 이점을 설명하십시오.
  • CloudTrail을 사용하여 사용자 활동을 감사합니다.

AWS 계정에 사용자가 한 명뿐이고 그 사용자가 귀하인 경우 AWS 계정 내에서 일어나는 일을 쉽게 파악할 수 있습니다. 그러나 다른 사용자를 추가하면 더 복잡해집니다. 특히 해당 사용자가 AWS 서비스, 애플리케이션, 다른 AWS 계정 또는 자격 증명 공급자의 역할을 통해 자신을 인증하는 사람인 경우에는 더욱 그렇습니다. 

그들 중 하나가 리소스를 삭제하거나 AWS 계정에서 비트코인 ​​마이닝을 시작하면 어떻게 알 수 있습니까? 이러한 모든 사용자가 계정 내에서 수행하는 작업 유형에 대한 통찰력을 얻으려면 어떻게 해야 합니까?

이 단원에서는 계정 활동에 대한 가시성을 확보하여 사용자에게 적절한 수준의 권한이 있는지 확인하고 불법 행위가 발생하는지 확인하고 사용자가 해야 할 일을 하고 있는지 확인하는 방법을 배웁니다.

AWS 계정의 활동 모니터링

CloudTrail은 AWS 계정에서 사용자, 역할 또는 AWS 서비스가 수행한 모든 작업을 추적하는 AWS 서비스입니다. 지속적인 활동 기록에 기록합니다. AWS 계정에서 API 호출이 이루어지면 CloudTrail을 사용하여 해당 활동을 보고, 검색하고, 다운로드하고, 분석할 수 있습니다. 예를 들어 AWS 계정 내에서 데이터베이스가 삭제된 경우 해당 활동을 보고 누가 데이터베이스를 삭제했는지, 언제 삭제했는지, 어떤 데이터베이스를 삭제했는지 등의 정보를 볼 수 있습니다.

  1. AWS 콘솔에 로그인합니다.
  2. AWS CloudTrail 을 찾아 클릭 합니다.
  3. 그런 다음 이벤트 기록  클릭 하여 계정의 과거 활동을 봅니다.

특정 활동에 대한 이벤트 기록 필터링

CloudTrail을 사용하면 지난 90일 간의 이벤트 기록을 볼 수 있습니다. 계정의 사용자 및 AWS 서비스 수에 따라 선별해야 할 활동이 많을 수 있습니다. 고맙게도 CloudTrail을 사용하면 리소스 이름, 이벤트 유형, 리소스 유형 등을 사용하여 이 이벤트 기록을 필터링할 수 있습니다.

예를 들어 고양이 사진 데이터베이스를 삭제한 사람을 찾기 위해 무작정 임무를 수행 중인 경우 데이터베이스 리소스를 기준으로 이 기록을 필터링하고 해당 서비스에 대해 발생한 모든 API 호출을 볼 수 있습니다.

이벤트 세부 정보 보기

이러한 이벤트 중 하나를 클릭하면 발생한 활동에 대한 확장된 세부 정보를 볼 수 있습니다. 예를 들어 DeleteDBInstance 이벤트를 표시하는 이벤트 라인을 클릭하면 사용된 액세스 키, AWS 리전, 이벤트 시간, 소스 IP 주소, 사용자 이름 등과 같은 세부 정보를 볼 수 있습니다.

다음 질문에 답할 수 있습니다.

  • 누가 데이터베이스를 삭제했습니까? alana 라는 사용자가 삭제한 것을 볼 수 있습니다 .
  • Alana는 언제 데이터베이스를 삭제했습니까? 2020년 6월 9일 오후 1  37분 34초에 삭제했습니다 .
  • Alana는 어디 에서 데이터베이스를 삭제했습니까? Alana는 IP 주소 205.251.233.48 에서 데이터베이스를 삭제했습니다 .
  • Alana는 어느 지역 에서 데이터베이스를 삭제했습니까? 데이터베이스는 us-west-2에 있었고 Alana는 해당 지역에서 데이터베이스를 삭제했습니다.

Quiz

1. Which detail does CloudTrail provide you information on?

A.When the activity occurred

B.Which region the activity occurred in

C.Why the activity occurred

D.A and B

E.B and C

 

2. True or false: CloudTrail provides information about how resources are performing, such as CPU, memory, and networking performance.

A.True

B.False

 

 

 

 

 

 

 

반응형

'개발자정보' 카테고리의 다른 글

1.5 AWS Networking  (0) 2021.09.12
1.4 AWS Compute  (0) 2021.09.12
1.1 AWS Cloud  (0) 2021.09.11
Salesforce 개발자 교육 Trails 순서  (0) 2021.09.11
강책임님의 개발자 신입사원 교육 #1  (0) 2021.09.11