RCP: 조직 밖 접근 차단
버킷 정책 실수가 있어도 외부 접근을 막는 바닥판.
개발자DevOps 관리자외부 주체
개발자: 실수로 연 버킷 정책
테스트하다가 Principal "*"로 GetObject를 열어 버렸다.
단계단계를 누르면 위 관계도가 그 단계로 바뀐다
-
테스트하다가 Principal "*"로 GetObject를 열어 버렸다.
{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::zandi-assets/*" } -
요청자가 내 조직이 아니고 AWS 서비스도 아니면 S3 · KMS 접근을 거부.
{ "Effect": "Deny", "Principal": "*", "Action": ["s3:*", "kms:*"], "Resource": "*", "Condition": { "StringNotEqualsIfExists": {"aws:PrincipalOrgID": "o-abc123"}, "BoolIfExists": {"aws:PrincipalIsAWSService": "false"} } } -
버킷 정책은 Allow지만 RCP의 Deny가 1번 관문에서 걸린다. 외부 principal에는 SCP가 안 먹히기 때문에 리소스 쪽 상한이 따로 필요한 것.
-
dev Role의 요청은 PrincipalOrgID가 일치해서 RCP 조건에 해당하지 않는다.