[1]
ECS -> Service
ECS cluster -> Service -> TASK -> Task용 container

1.
doc 작성 // trust-policy
- “ecs-tasks.amazonaws.com 이 이 Role을 ‘가져다 쓸 수 있다(Assume)’”라는 신뢰 관계 선언
- 즉 **자격증명(temporary credentials) 발급 루트(=STS)**로 가기 위해
2.
role 생성
3.
policy_attachment (Permission_policy)
여기에 붙이는 AmazonECSTaskExecutionRolePolicy는 보통 이런 권한 포함
- ECR에서 이미지 Pull
- CloudWatch Logs로 로그 전송
- (상황에 따라) SSM Parameter Store / Secrets Manager 읽기 등
* ECS 서비스가 task를 실행하기보다
* TASK가 시작될 떄 EC2 Agent / Fargate가 태스크를 대신해서 필요한 작업을 수행하기 위한 권한
* 그래서 이름도 task_exec(Execution Role) 이다.

서비스에
- cluster.id
- task_definition.id
를 매핑하고

task (definition) 에 role.arn을 할당
-----------------------------------------------------------
[2]
EC2 -> S3
IDENTITY_BASED
EC2는 내부 서비스로서 IAMROLE
1. doc 생성 : actions = ["sts:Assume"] 필요 // trust policy
2. Role 생성
3. role에 policy attachment : S3 Readonly // permission Policy
4. EC2에 부착하기 위해 instance_profile에 ROLE 장착
---------------------------------------------------------------------------------------------------------
[3]
Cloudfront -> S3
Resource-based
(cloudfront는 API 호출이 아닌 S3 직접 허용 / externel proxy service로 간주)

1. doc 작성 : actions = ["S3:getObject"]
doc 안에 service principal이 들어간다 (cloudfront)
2. S3_bucket_policy(resource_based) 에 위 doc.json 장착
S3 내부 버킷 리소스를 "대신 받아서" 사용자에게 전달
사용자 대신 GET 수행
global edge location에서 접근
즉 S3 입장에서는 "누군가 인터넷 너머에서 내 객체를 가져가려 한다."
-> 그래서 서비스 프린시펄을 둔다
-
그런데 Cludfront라면 전부 허용은 너무 넓다
-> condition을 둔다

dst가 인증되었을 떄만
-
+ OAC
cloudfront가 S3에 접근할 때 "자기 신분증" 을 들고 가게 만드는 장치
OAC 붙이면 Cloudfront가 요청 보낼 떄
GET /index.html
Authorization: AWS4-HMAC-SHA256 ...
즉
- SigV4 서명 수행
- IAM 인증 체계 편입
- S3가 "신뢰 가능한 호출" 로 인식
-
Distribution 단계에서는
- S3 접근 권한 없어도 생성 가능하다
- 단순히 Origin 주소만 등록하는거다
(케이블 꽃기만 한 상태)
-
실제 콘텐츠 요청은 (*여기서 권한 필요)
1. bucket policy 허용
2. service principal 조건
3. OAC 서명 일치
이게 안 맞으면?
-> 403 Access Denied
*일종의 ping은 가는데 SSH로그인 실패한 상태
-
[User]
↓
CloudFront Edge
↓ (OAC 서명)
S3 Bucket Policy 검증
↓
Object GET
DST 존재 -> 라우팅 가능
OAC 존재 -> 인증 가능
Buckey Policy 존재 -> 인가 가능
Object 존재 -> 응답 가능
-
Cloudfront는 대리 수령자
OAC는 위임장 서명
Bucket Policy는 창고 출입 허가서
-> 셋이 동시에 맞아야 s3 object 물건이 나ㅇㄴ다
구분EC2 → S3CloudFront → S3
| 접근 주체 | IAM Role | AWS Service |
| 인증 방식 | STS Token | OAC SigV4 |
| 정책 유형 | Identity Policy | Resource Policy |
| 네트워크 위치 | 내부 | 외부 프록시 |
| Principal | arn:aws:iam | cloudfront.amazonaws.com |
'[2] 250909~ 클라우드 > [b] 12월 : Terraform + Ansible' 카테고리의 다른 글
| [40] Dockerd / Containerd / runc + k8s (0) | 2026.02.10 |
|---|---|
| [39] Execution Role vs Task Role (0) | 2026.02.10 |
| [37] ECS (0) | 2026.02.07 |
| [36] 명령어 모음 (0) | 2026.02.07 |
| [35] tier-3 + DB테스트 (0) | 2026.02.06 |