일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 레디스 동시성
- 백준
- AWS
- 프로그래머스
- 결제서비스
- branch 전략
- 코드 계약
- 이분탐색
- 좋은 코드 나쁜 코드
- 셀러리
- piplining
- jwt 표준
- 숫자 블록
- prg 패턴
- 디버깅
- 완전탐색
- spring event
- 객체지향패러다임
- 트랜잭샨
- 알람 시스템
- 검색어 추천
- docker
- BFS
- 쿠키
- 수신자 대상 다르게
- 구현
- 깊게 생각해보기
- 누적합
- 카카오
- gRPC
- Today
- Total
코딩관계론
AWS - IAM 본문
IAM
사용 이유
AWS IAM은 AWS 계정에 대한 사용자, 그룹 및 역할을 관리하고, 각각의 역할에 대한 최소한의 권한만 부여하여 AWS 리소스에 대한 보안성을 유지하고 보호하는 데 사용됩니다.
IAM Group
사용 이유
AWS IAM에서는 그룹을 사용하여 여러 유저에게 동일한 권한을 부여하거나, 한 유저에게 여러 권한을 할당하는 대신에 여러 그룹에 권한을 부여할 수 있습니다. 또한, 최소한의 권한을 부여하는 것이 보안에 더욱 안전한 방법이기 때문에 IAM 권한을 부여할 때 최소한의 권한 원칙을 따르는 것이 좋습니다.
특징
AWS IAM 그룹에는 다른 그룹도 포함될 수 있습니다. 그리고 유저는 여러 그룹에 속할 수 있지만, 하나의 그룹에 대해 중복으로 속할 수는 없습니다.
IAM Policy
존재 이유
IAM Policy는 AWS 계정의 리소스에 대한 액세스를 규정하는 문서입니다. 정책은 사용자, 그룹, 역할 등의 AWS ID에 적용될 수 있으며, 특정 작업 또는 서비스에 대한 권한을 정의합니다.
특징
- IAM Policy는 AWS 계정의 리소스에 대한 액세스를 규정하는 문서이며, 일종의 규칙 집합입니다.
- 사용자, 그룹, 역할 등의 AWS ID에 적용될 수 있으며, 특정 작업 또는 서비스에 대한 권한을 정의합니다.
- IAM Policy는 JSON 형식으로 작성되며, JSON 문법에 따라 작성해야 합니다.
- 사용자, 그룹 또는 역할에 직접 연결되어 있는 인라인 정책과, 여러 리소스나 다른 정책과 연결되어 있는 관리형 정책으로 나눌 수 있습니다.
- 그룹에는 여러 사용자를 포함시킬 수 있으며, 사용자는 여러 그룹에 속할 수 있습니다. 이때 사용자가 속한 그룹에서 설정된 정책들을 상속받아 권한을 얻게 됩니다.
- 그룹이 없는 사용자에게는 인라인 정책을 직접 부여할 수 있습니다. 이 경우, 사용자에게 부여된 인라인 정책이 우선적으로 적용됩니다.
IAM Policy의 Json 필드 설명
IAM 정책에서는 "Effect", "Action", "Resource", "Condition" 등의 필드를 사용하여 권한 부여를 규정합니다.
- Effect: 권한 부여 또는 거부 여부를 지정합니다. "Allow" 또는 "Deny" 값을 가집니다.
- Action: 수행 가능한 작업을 지정합니다. AWS에서 제공하는 서비스와 해당 서비스에서 지원하는 작업을 포함합니다.
- Resource: 작업을 수행할 수 있는 리소스를 지정합니다. ARN(Amazon Resource Name) 형식으로 지정합니다.
- Condition: 정책이 적용되는 조건을 지정합니다. 예를 들어 특정 IP 주소에서만 액세스를 허용하도록 설정할 수 있습니다.
각 필드에서 사용되는 키 값은 다음과 같습니다.
- Effect: "Allow" 또는 "Deny"
- Action: AWS에서 제공하는 서비스 및 해당 서비스에서 지원하는 작업을 나타내는 문자열입니다. 예를 들어, "s3:PutObject"는 Amazon S3에서 객체를 업로드하는 작업을 나타냅니다.
- Resource: ARN 형식으로 표시된 리소스 식별자입니다. 예를 들어, "arn:aws:s3:::mybucket/*"는 "mybucket"이라는 이름의 Amazon S3 버킷의 모든 객체를 나타냅니다.
- Condition: IAM 정책이 적용되는 조건을 지정하는 데 사용됩니다. 예를 들어, "Condition": {"IpAddress": {"aws:SourceIp": "192.0.2.0/24"}}는 특정 IP 범위에서만 액세스를 허용하도록 지정합니다
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
MFA
사용 이유
AWS는 해킹 방지를 목적으로 MFA를 도입했습니다. MFA는 사용자의 물리적 디바이스에서 생성되는 비밀번호이기에 해킹의 위험이 줄어듭니다.
IAM ROLE
사용 이유
IAM Role은 AWS 계정에서 리소스에 대한 액세스를 설정할 수 있는 방법입니다. 이는 사용자나 그룹에 대한 권한을 부여할 때보다 보안성이 높은 방법으로 권한을 부여할 수 있습니다. IAM Role은 AWS 리소스에 대한 권한을 부여하거나 API 요청을 수행할 때 액세스 권한을 부여하는 데 사용됩니다.
즉 IAM Role은 IAM 서비스를 사용하여 AWS 리소스에 대한 액세스 권한을 안전하게 제어하는 데 도움이 됩니다.
사용 예시
예를 들어, EC2 인스턴스에서 RDS 데이터베이스에 액세스해야 하는 경우, EC2 인스턴스에 IAM Role을 연결하여 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다. 이렇게 함으로써 EC2 인스턴스에서 데이터베이스 자격 증명을 사용하지 않고도 데이터베이스에 액세스할 수 있습니다.
IAM의 모범 사례
- 최소 권한 원칙: 사용자 또는 역할에 대한 최소한의 권한만 부여하여 보안성을 높입니다. 필요한 작업에만 액세스할 수 있도록 구성하고, 그 이상의 권한은 제한합니다.
- 사용자와 역할 분리: 각 사용자와 역할에 대한 엄격한 분리를 유지합니다. 사용자와 역할은 필요에 따라 다른 권한을 가집니다.
- 주기적인 권한 검토: 일정한 간격으로 사용자와 역할의 권한을 검토하고 필요하지 않은 권한을 제거합니다. 이를 통해 권한 부여의 불필요한 축적을 막을 수 있습니다.
- 보안 토큰 및 암호화 키 분리: IAM 사용자와 역할은 보안 토큰과 암호화 키를 분리하여 안전한 관리를 보장합니다.
- IAM 액세스 키 로테이션: IAM 액세스 키는 일정 기간마다 로테이션(갱신)하여 보안성을 유지합니다.
- MFA(Multi-Factor Authentication) 활성화: MFA를 활성화하여 AWS 계정에 대한 보안을 강화합니다.
- CloudTrail 로깅 사용: CloudTrail을 사용하여 모든 API 호출 로그를 캡처하고 저장하면 보안 이벤트를 검출할 수 있습니다.
- IAM 정책 버전 관리: IAM 정책에 대한 변경을 추적하고 관리합니다. 버전 관리를 통해 필요한 경우 이전 버전으로 되돌릴 수 있습니다.
- IAM 역할 분리: IAM 역할은 다른 AWS 계정에 대한 액세스를 제공할 수 있습니다. 이 경우, 역할 분리를 사용하여 외부 계정에 대한 액세스를 제한합니다.
'AWS' 카테고리의 다른 글
AWS - Elastic Load Balancer (0) | 2023.04.02 |
---|---|
AWS - 고가용성과 확장성이란? (0) | 2023.03.29 |
AWS - EBS & EFS (0) | 2023.03.27 |
AWS - EC2 (0) | 2023.03.26 |
AWS - Region, AZ (Availability Zone)의 개요 (0) | 2023.03.25 |