해결된 질문
23.12.09 18:25 작성
·
256
1
에서 동일계정에서 권한을 부여한다는 말씀이 정확히 어떤 말씀이신건가요?
계정이 다른 경우에는 b라는 리소스를 사용하기 위해서는 사용자 a와 b리소스 모두 서로 권한을 allow해야 한다는 것까지는 이해했습니다.
(c계정은 b리소스를 사용할 수 없음, 그림은 다 a계정으로 되어있어서 이 부분도 약간 혼란스러웠네요. 제가 이해한게 맞을까요?)
그런데 동일 계정'에서' 권한을 부여하는 경우 문제가 생긴다는 게 정확하게 어떤 뜻인지 이해가 가지 않습니다.
예를 들어 a 계정이 b 리소스에 s3:GetObject라는 권한을 허용하면 a가 b에게 권한 설정을 했으므로, a 자체가 해당 리소스에 대한 권한이 없더라도 b리소스에 대한 접근이 가능하다는 건가요? (만일 b계정이 권한을 부여한다면 a는 접근이 불가능한거구요)
'여기에 밑에 설명에 a라는 사용자에게 권한이 있으면 무용지물이 됨'이라고 되어있어서 어떤 말씀을 하시는지 잘 이해가 되지 않습니다!
초보자인 저에게 좀 더 친절한 설명을 주시면 감사하겠습니다!
(혼자서 이해해보고자 chatGPT에게도 문의해보았습니다 ㅎㅎ)
답변 2
1
1
2023. 12. 09. 20:56
안녕하세요. 좋은 질문 감사드립니다.
계정이 같은 경우, 특별한 예외 케이스(KMS, IAM 신뢰정책 등)을 제외하고는 자격 증명 기반 정책 또는 리소스 기반 정책에서만 허용이 되면 접근할 수 있다는 설명이었습니다.
그림을 보면서 다시 한 번 설명드리겠습니다.
왼쪽 케이스의 경우,
A계정의 A 사용자에게 권한(자격증명기반정책)이 부여되어 있고, B계정의 Bucket에 권한(리소스기반정책)이 부여되어 있어야만 접근이 가능합니다.
결국 교차 계정 접근의 경우, 사용자/리소스 모두에 권한이 존재해야 접근이 가능합니다.
오른쪽 케이스의 경우,
A계정 내 A 사용자에게 권한이 있거나, Bucket에 권한이 부여되어 있으면 접근이 가능해집니다.(둘 중 하나만 Allow 정책이 존재하면 접근 가능)
그렇기에, 조금 더 안전하게 정책을 수립하려면 Deny 기반으로 정책을 수립하면 좋다라는 설명을 드렸습니다.
C/D 사용자를 말씀드린건, 같은 계정에서 접근하는 경우,
Bucket에 C/D 사용자만 Allow하는 정책을 넣었더라도,
A 사용자에게 Bucket에 대한 Allow 권한이 있으면 접근이 가능하다는 뜻이었습니다.