IAM (Identity and Access Management)이란?

     AWS 계정을 생성할 때 완전한 액세스 권한이 있는 루트 계정으로 생성됩니다.  루트 사용자만 수행할 수 있는 작업(루트 사용자 보안 인증 정보를 보호 등)을 제외하고 AWS는 루트 사용자 계정에서 작업하는 행위를 지양할 것을 권고합니다.

     루트 계정에서 지양하는 일련의 작업들은 IAM을 통해 해결합니다. IAM을 사용하면 사용자, 그룹 을 생성하여 관리하며 리소스에 대한 접근도 중앙에서 관리할 수 있습니다. 

  1. 인증: 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있습니다.
  2. 권한 부여: 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있습니다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있습니다.
  3. 권한 검증: 사용자가 AWS 리소스에 대한 액세스를 요청할 때 요청이 인증된 사용자에게 허용되는지 여부를 결정할 수 있습니다. 

IAM은 AWS에서 보안을 강화하고 규정 준수 요구 사항을 충족하는 데 중요한 역할을 합니다. IAM을 사용하면 사용자에게 필요한 권한만 부여하여 보안을 유지하고, 일부 규정 준수 규정을 준수하기 위해 일부 사용자에게만 특정 리소스에 대한 액세스를 부여할 수 있습니다

 

 

 

 

IAM 특징

  • Global 서비스
  • 회원 가입시 만들어진 Root Account는 사용/ 공유되지 않아야 합니다.
  • User와 Group을 만들어서 사용해야 합니다.
    • Group 은 개발자/ 운영 / 디자이너와 같이 유저 종류를 지정합니다.
    • User는 Group에 속하지 않을 수도, 여러 Group에 속할 수 있습니다.
    • User는 Root Account가 준 AWS 서비스만 접근할 수 있습니다.
  • 이렇게 만들어진 Group과 User들은 Policy를 통해서 권한을 조정합니다.
    • 최소한의 권한 원칙(least privilege principle)

 

 

 

 

IAM 구성

  1. 사용자(User): IAM에서 사용자는 AWS 계정에 액세스하는 개별 인물 또는 서비스입니다. AWS IAM에서는 계정에 액세스하는 각 사용자에 대해 별도의 보안 자격 증명을 생성할 수 있습니다. 이를 통해 사용자가 AWS 리소스에 대한 액세스 권한을 가지며, 이러한 액세스 권한은 IAM 정책을 사용하여 관리됩니다.
  2. 그룹(Group): IAM에서 그룹은 하나 이상의 사용자를 그룹화하여 이들에게 공통된 권한을 부여하는 데 사용됩니다. 예를 들어, 특정 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스를 가진 모든 사용자를 그룹화할 수 있습니다. 그룹은 유사한 권한을 가진 여러 사용자를 효과적으로 관리할 수 있도록 도와줍니다.
  3. 정책(Policy): IAM 정책은 JSON 형식으로 작성되며, 허용 또는 거부할 수 있는 작업 및 AWS 리소스에 대한 액세스 수준을 지정합니다. IAM 정책은 일반적으로 최소 권한 원칙을 따릅니다. 즉, 필요한 권한만 부여하고, 불필요한 권한을 제거하여 보안을 강화합니다.

 

 

 

 

IAM 사용자 생성하기

 

* AWS  Management Console에 대한 사용자 액세스 권한 제공

    체크 X, API를 이용해서 access

    체크 O, Web에서 접근 할 수 있는 계정을 생성

 

 

IAM 사용자 생성

자동 생성된 암호를 지정하면, 처음 랜덤한 비번을 갖고 사용자가 이후 암호를 변경하도록 설정할 수 있습니다.

 

 

사용자 지정 암호는 일반적인 비밀번호 생성과 동일합니다.

 

 

그룹 권한 지정하기

    JSON 형태로 권한 생성합니다.

 

Administrator Access : 모든 권한을 주는 관리자 생성

 

사용자 그룹을 지정할 수 있다.

    * Account  = Root 계정

    * User = 사용자 할당 

 

가독성을 위해 aws의 계정 별칭을 설정 할 수 있습니다.

 

 

 

 

Policy Structure

 

{
  "Version": "policy-version",
  "Statement": [
    {
      "Effect": "allow-or-deny",
      "Action": ["action-name"],
      "Resource": ["resource-arn"],
      "Condition": {
        "condition-operator": {
          "condition-key": "condition-value"
        }
      }
    }
  ]
}
  • Version : 정책의 버전을 나타냅니다. 현재는 "2012-10-17" 에서 고정되었습니다.
  • Statement : 정책의 규칙을 나타냅니다. 배열 형태로 여러 개의 규칙을 작성할 수 있습니다.
  • Effect : 규칙의 적용 여부를 나타냅니다. "allow" 또는 "deny" 중 하나를 선택합니다.
  • Action : 규칙이 적용되는 작업의 종류를 나타냅니다. 예를 들어 "s3:ListBucket"과 같은 형식으로 작성합니다.
  • Resource : 규칙이 적용되는 리소스의 ARN (Amazon Resource Name)을 나타냅니다. 예를 들어 "arn:aws:s3:::my-bucket/*"과 같은 형식으로 작성합니다.
  • Condition : 규칙이 적용되는 조건을 나타냅니다. 필수는 아니며, 필요한 경우 추가할 수 있습니다. 다양한 조건 연산자를 사용할 수 있습니다. 예를 들어 "IpAddress" 조건 연산자를 사용하면 특정 IP 주소에서만 작업을 수행할 수 있도록 제한할 수 있습니다.

 

 

 

Multi-Factor Authentication(MFA)

    다중 인증 요소 인증 방식을 의미합니다. 이 방식은 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화하는 방법입니다.

  • 계정에서 반드시 활성화 시키는 것이 좋습니다.
  • 활성화 된 MFA는 기기 변경시 추가인증 혹은 백업파일이 필요합니다. 핸드폰 바꿀 때 주의하세요.

 

'aws' 카테고리의 다른 글

04.5. [aws] SSL과 HTTPS  (0) 2023.05.14
04. [aws] ELB  (0) 2023.05.07
03. [aws] EBS(Elastic Block Store)  (0) 2023.05.07
02. [aws] EC2  (0) 2023.05.07
00. [aws] AZ  (0) 2023.05.01

+ Recent posts