AWS 클라우드(1)

김현정·2025년 5월 7일
0

1. AWS란?

  • Amazon Web Service
  • 서버, 네트워크 등 인프라 전체를 빌려주는 서비스
  • 클라우드 컴퓨팅 서비스 플랫폼
  • 인터넷을 통해 서버, 저장소, 데이터베이스, 네트워크, 인공지능 등 IT 인프라 자원을 빌려 쓸 수 있는 서비스
  • AWS의 주요서비스는 컴퓨팅(EC2 등), 데이터베이스(RDS 등), 스토리지(S3, EBS 등), 네트워킹(VPC, CloudFront등), 보안(IAM 등)
  • Onpremise 서버 : 조직 내부에 설치되고 유지보수되는 서버. 즉, 서버가 조직의 물리적인 위치에 있으며 조직의 IT 인프라를 관리하는 팀이 해당 서버를 관리하고 유지보수한다.

AWS 리전

: 세계 각지에 있는 AWS 데이터 센터의 물리적인 위치를 의미. 각 리전은 여러 개의 가용 영역으로 구성되어 있다. 여러개의 AZ(가용영역)를 씀으로써 데이터 센터가 재해상황에 빠졌을때도 서비스를 유지할 수 있는 고가용성을 확보할 수 있다.

** 고가용성 : 시스템이 예기치않은 장애 또는 중단에도 불구하고 지속적으로 작동하는 능력을 말한다.

AWS 서비스들


Identity and Access Management : IAM 보안

Global 서비스
회원가입 시 만들어진 Root Account는 사용/ 공유되지 않아야 함.
User와 Group를 만들어서 사용해야한다.

  • Group는 개발자/ 운영과 같이 유저 종류를 지정
  • User는 실제 로그인하는 사람
  • User는 Group에 속하지 않을수도, 여러 Group에 속할 수 있다.

이렇게 만들어진 Group와 User들은 Policy를 통해 권한을 조정한다. (최소한 권한 원칙)

IAM 소개

: AWS Identity and Access Management (IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. . IAM을 사용하면 AWS에서 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어할 수 있다.

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

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

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

Users, Groups, Policies

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

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

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

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

MFA

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

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

MFA를 사용하면 사용자의 로그인 정보가 유출되었을 경우에도 보안을 유지할 수 있다. 예를 들어, 악의적인 공격자가 사용자의 ID와 비밀번호를 훔쳐서 로그인을 시도해도, MFA를 사용하면 추가적인 인증 요소를 입력하지 않는 한 로그인이 불가능함. 이를 통해 AWS와 같은 클라우드 서비스에서는 중요한 데이터와 리소스를 안전하게 보호할 수 있다.

  • 루트유저에는 반드시 반드시 적용을 해주기!
  • 추가로 만드는 IAM User에도 반드시 해줘야함!

0개의 댓글