[TIL] AWS 클라우드 (2): IAM

hanbyul.choi·2023년 8월 1일
0

[TIL]

목록 보기
31/39

1. IAM 소개

AWS Identity and Access Management (IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스다.

  • IAM을 사용하면 AWS에서 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어할 수 있다.

  • 협업하는 과정에서 필요하다고 볼 수 있다.

  • IAM을 사용하면 다음과 같은 보안 기능을 수행할 수 있다.

    1. 인증: IAM을 사용하여 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있다.

    2. 권한 부여: IAM을 사용하여 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있다.

    3. 권한 검증: IAM을 사용하여 사용자가 AWS 리소스에 대한 액세스를 요청할 때 요청이 인증된 사용자에게 허용되는지 여부를 결정할 수 있다. IAM은 권한 검증을 수행하기 위해 사용자가 AWS 리소스에 대한 액세스를 요청할 때 IAM 정책을 적용한다.

2. Users, Groups, Policies

  1. 사용자(User): IAM에서 사용자는 AWS 계정에 액세스하는 개별 인물 또는 서비스.
    AWS IAM에서는 계정에 액세스하는 각 사용자에 대해 별도의 보안 자격 증명을 생성할 수 있다.
    이를 통해 사용자가 AWS 리소스에 대한 액세스 권한을 가지며, 이러한 액세스 권한은 IAM 정책을 사용하여 관리

  2. 그룹(Group): IAM에서 그룹은 하나 이상의 사용자를 그룹화하여 이들에게 공통된 권한을 부여하는 데 사용.
    예를 들어, 특정 Amazon S3 버킷에 대한 읽기 및 쓰기 액세스를 가진 모든 사용자를 그룹화할 수 있다.
    그룹에 대한 권한은 IAM 정책을 사용하여 관리하고 유사한 권한을 가진 여러 사용자를 효과적으로 관리할 수 있도록 도와준다.

  3. 정책(Policy): IAM 정책은 AWS 리소스에 대한 액세스 권한을 지정하는 데 사용되며, 사용자 또는 그룹과 연결된다.
    IAM 정책은 JSON 형식으로 작성되며, 허용 또는 거부할 수 있는 작업 및 AWS 리소스에 대한 액세스 수준을 지정.
    IAM 정책은 일반적으로 최소 권한 원칙을 따른다. 즉, 필요한 권한만 부여하고, 불필요한 권한을 제거하여 보안을 강화.

위와 같이 IAM에서는 사용자, 그룹, 정책을 사용하여 AWS 리소스에 대한 액세스 권한을 지정하고 관리한다. 이를 통해 AWS 리소스에 대한 보안을 강화하고, 사용자에게 필요한 권한만 부여하여 보안을 유지할 수 있다.

3. 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 주소에서만 작업을 수행할 수 있도록 제한 가능.

4. MFA

MFA는 Multi-Factor Authentication의 약어로, 다중 인증 요소 인증 방식을 의미한다.
이 방식은 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화하는 방법이다.

  • 예를 들어, 일반적인 로그인 절차에서는 사용자가 ID와 비밀번호를 입력하여 인증을 완료한다. 그러나 MFA를 사용하는 경우, 사용자는 일반적인 로그인 정보 외에도 추가적인 인증 요소를 제공해야 합니다. 이는 일반적으로 사용자의 소유물인 스마트폰 또는 하드웨어 보안 토큰 등을 사용하여 구현된다.

  • MFA를 사용하면 사용자의 로그인 정보가 유출되었을 경우에도 보안을 유지한다. 이를 통해 AWS와 같은 클라우드 서비스에서는 중요한 데이터와 리소스를 안전하게 보호할 수 있다.

  • 루트유저에는 무조건 적용을 해야한다.(정해진 룰은 아니지만 보안상 거의 필수)

0개의 댓글