본문 바로가기

aws

[AWS] 1. IAM

 

 

참고사항

https://www.udemy.com/course/aws-certified-developer-associate-dva-c01

 

 

 

1. IAM (Identify and Access Management)

사용자와 그룹을 통해 최소한의 권한만을 할당하여 서비스 이용

 

- 기본 계정은 root로 사용하면 안됨 (오직 관리용)

- users :  사용자들이 사용하는 계정, 해당 계정마다 권한을 할당

- groups : user를 group에 포함하여 group마다 권한 할당 (단, gorup안에 group은 포함 불가 / 오직 user만 포함)

 

2. IAM policy

AWS에서는 최소 권한의 원칙(least privilege principle)을 권고. 사용자가 꼭 필요로 하는 것 이상의 권한을 주지 않을것

{
    "Version": "2012-10-17",  # policy language version (기본값)
    "Statement": [ 
        {
            "Sid": "AddPublicReadCannedAcl", # statment의 id (옵션)
            "Effect": "Allow",  # allow or deny
            "Principal": {      # account / user / role (아래는 111122223333 유저를 표기)
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                ]
            },
            "Action": [          # 액션 목록 (필수)
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", # 액션이 사용될 리소스  (필수)
            "Condition": {             # 정책의 효력이 발생하는 시점에 대한 조건을 지정 (옵션)
                "StringEquals": {       
                    "s3:x-amz-acl": [  # acl 조건키가 public-read 만 사용 가능
                        "public-read"
                    ]
                }
            }
        }
    ]
}

 

 

 

3. Multi Factor Authentication - MFA

IAM 사용자들도 보호를 위해 비밀번호 이외에 사용할 수 있는 수단으로서 MFA 사용

 

 

 

4.  AWS 접근 가능한 다양한 방법들

To Access AWS, you have three options:
- AWS Management Console (protected by password + MFA)
- AWS Command Line Interface (CLI) : protected by access keys
- AWS Software Developer Kit (SDK) - for code: protected by access keys

 

 

AWS CLI (Command Line Interface)
- Command-line shell에서 명령어를 통해 AWS를 사용가능


AWS SDK (Software Development Kit)
- 특정 언어의 API (라이블러리)
- SDK를 사용하여 특정 서비스나 API를 프로그래밍을 위한 액세스 가능

 

 

5. AWS IAM role

AWS 리소스에 임시 자격 증명을 제공하는 역할.

사용자는 역할을 사용하여 특정 작업을 수행할 수 있는 권한을 임시로 부여받을 수 있다. 역할은 주로 애플리케이션, 서비스, 사용자 간의 권한 위임을 위해 사용

  • Policy: IAM 엔터티(사용자, 그룹, 역할)에 권한을 부여하기 위해 사용 (관리자가 변경하지 않는 이상 계속 사용 가능)
  • Role: 특정 AWS 서비스 또는 사용자가 가정하여 임시 권한을 얻기 위해 사용 (관리자가 지정한 시간이 지나면 임시 권한 사라짐)

 

 

6. IAM Best Practices

- Don't use the root account except for AWS account setup

- One physical user = One AWS user

- Assign users to groups and assign premission to groups

- Create a strong password policy

- Use and enforce the use of MFA

- create and use Roles for giving premission to AWS services

- use access CLI / SDK

- Naver share IAM users & Access Keys