반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Kibana
- JS
- gemini
- 설정
- app
- unity
- AWS
- JavaScript
- FLUTTER
- MySQL
- 주식
- ChatGPT
- nodejs
- Ai
- docker
- API
- 분석
- 투자
- Linux
- LLM
- error
- MSSQL
- 유니티
- 재테크
- elasticsearch
- Windows
- 구글
- 바보
- Python
Archives
- Today
- Total
가끔 보자, 하늘.
AWS Cognito 자격 증명 풀의 액세스 제어 관련 속성 상세 본문
액세스 제어 관련 속성은 Amazon Cognito Identity Pool의 ABAC(Attribute-Based Access Control) 기능입니다.
액세스 제어 관련 속성이란?
사용자의 속성(attributes)을 기반으로 AWS 리소스에 대한 접근 권한을 세밀하게 제어하는 기능입니다.
작동 원리:
- 속성 매핑: 사용자 토큰의 속성을 IAM 정책의 태그로 매핑
- 세션 태그: 사용자 세션에 태그를 자동으로 할당
- 조건부 접근: IAM 정책에서 이 태그들을 조건으로 사용하여 접근 제어
사용 사례:
1. 부서별 접근 제어
// 사용자 토큰에서 department 속성을 추출 |
{ |
"department": "legal", |
"clearance": "confidential" |
} |
// IAM 정책에서 조건 사용 |
{ |
"Effect": "Allow", |
"Action": "s3:GetObject", |
"Resource": "arn:aws:s3:::company-${aws:PrincipalTag/department}/*", |
"Condition": { |
"StringEquals": { |
"s3:ExistingObjectTag/classification": "${aws:PrincipalTag/clearance}" |
} |
} |
} |
2. 멀티테넌트 애플리케이션
- 각 테넌트의 사용자가 자신의 테넌트 데이터에만 접근
- 사용자 속성:
tenant_id: "company-a"
- S3 버킷:
s3://app-data/company-a/
3. 역할 기반 접근
- 사용자 속성:
role: "manager",team: "sales"
- 매니저는 자신 팀의 모든 데이터 접근 가능
- 일반 직원은 개인 데이터만 접근 가능
설정 방법:
기본 매핑 사용:
-
sub→ 사용자 ID
-
aud→ 클라이언트 ID
-
amr→ 인증 방법
-
iss→ 발급자
커스텀 매핑:
- Google:
email,name,picture
- Facebook:
id,name,email
- 커스텀 속성:
custom:department,custom:role
언제 사용하나?
사용해야 하는 경우:
- 세밀한 권한 제어가 필요한 경우
- 멀티테넌트 애플리케이션
- 부서/팀별 데이터 분리가 필요한 경우
- 동적 권한 할당이 필요한 경우
- 규정 준수를 위한 접근 제어가 필요한 경우
사용하지 않아도 되는 경우:
- 모든 사용자가 동일한 권한을 가지는 경우
- 단순한 인증만 필요한 경우
- 정적 역할만으로 충분한 경우
장점:
- 효율적인 권한 관리: 적은 수의 정책으로 복잡한 권한 제어
- 동적 확장: 새로운 사용자/리소스 추가 시 자동으로 권한 적용
- 세밀한 제어: 사용자별, 속성별 세밀한 접근 제어
- 감사 추적: CloudTrail에서 사용자 속성 기반 활동 추적 가능
결론: 복잡한 권한 구조나 멀티테넌트 환경에서 매우 유용하며, 단순한 애플리케이션에서는 오버엔지니어링이 될 수 있습니다.
반응형
'개발 이야기 > 인프라 구축 및 운영' 카테고리의 다른 글
k8s 를 위한 기본 설정 + 사이드카 (1) | 2025.08.19 |
---|---|
보안망에서 docker를 대신할 podman (2) | 2025.08.18 |
docker 불필요한 이미지 정리 (0) | 2025.05.05 |
C 드라이브에 설치된 WSL2를 E 드라이브로 옮기기 (0) | 2025.02.06 |
Windows 11/Docker에서 Ubuntu 설치 및 Nvidia 그래픽 카드 연동 절차 (0) | 2025.02.04 |