S3 외부 파트너사 전용 액세스 설정 가이드
1단계: 파트너사 정보 식별
가장 먼저 파트너사로부터 다음 정보를 받아야 합니다.
파트너사의 AWS 계정 ID (12자리 숫자)
(더 정교하게 제한하려면) 접속할 파트너사 직원의 IAM Role ARN 또는 IAM User ARN
2단계: S3 버킷 정책(Bucket Policy) 작성
우리 계정의 S3 콘솔에서 해당 버킷에 아래와 같은 정책을 적용합니다. 이 정책은 "특정 계정(Principal)에게만 읽기/쓰기 권한을 준다"는 선언입니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowExternalPartnerAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::PARTNER_ACCOUNT_ID:root"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::버킷-이름",
"arn:aws:s3:::버킷-이름/*"
]
}
]
}
Tip:
Principal에:root를 넣으면 파트너 계정 내의 모든 사용자가 우리 버킷을 볼 수 있는 '권한의 통로'가 생깁니다. 실제 사용 여부는 파트너사의 IAM 설정에 달려 있습니다.
3단계: 보안 강화 (Condition 활용)
단순히 계정만 허용하는 것이 불안하다면, 조건(Condition)*을 추가하여 보안 수준을 높이세요.
IP 제한: 파트너사의 사무실 공인 IP에서만 접속 가능하도록 제한
"Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4/32" } }보안 전송 강제: 반드시 HTTPS(SSL)를 통해서만 접속하도록 강제
"Condition": { "Bool": { "aws:SecureTransport": "true" } }
4단계: 파트너사의 IAM 정책 설정 (Partner Side)
이제 파트너사 담당자에게 아래 내용을 전달하여 그들의 IAM 사용자/역할에 권한을 추가하라고 요청해야 합니다.
필요 권한: 우리 버킷(
arn:aws:s3:::우리-버킷-이름/*)에 대한s3:GetObject,s3:PutObject등
주의 사항
항목 | 상세 내용 |
객체 소유권 (Object Ownership) | 외부 계정이 우리 버킷에 파일을 업로드하면, 기본적으로 그 파일의 소유권은 '외부 계정'에 있습니다. 이를 해결하려면 버킷 설정에서 '버킷 소유자 강제(Bucket owner enforced)' 기능을 활성화하세요. |
KMS 암호화 | 버킷이 KMS(SSE-KMS)로 암호화되어 있다면, 파트너사는 S3 권한뿐만 아니라 KMS 키 사용 권한도 함께 부여받아야 파일을 읽을 수 있습니다. |
Block Public Access | 이 설정은 '모두(Public)'에게 여는 것을 막는 것이지, 특정 계정(Cross-Account)에 여는 것을 막지는 않습니다. 따라서 이 기능을 켠 상태에서도 위 정책은 정상 작동합니다. |
댓글
댓글 0개
이 문서에는 댓글을 달 수 없습니다.