IAM 그룹, 사용자 생성 및 권한 부여에 대해 익숙해졌으니 이제 도전 과제를 해결해 봅시다. 걱정하지 마세요… 다양한 팁을 제공해 드릴게요!

이전에 우리는 학생들이 CS 웹 포털에서 작업할 수 있도록 허용했지만, 민감한 데이터가 포함된 성적표 자산에 접근하지 못하도록 제한해야 한다고 권장했습니다 (최소 권한 원칙, 기억나시죠?!) . 이는 학교의 데이터 보호 정책에 따라 학생들이 다른 학생의 성적에 접근하는 것이 엄격하게 금지되어 있기 때문에 필요합니다.

도전 과제

student-user1 계정이 성적표 데이터를 접근하지 못하도록 하는 IAM policy statement(정책 문)을 작성하세요.

도전 과제를 시도하기 전에 고려할 몇 가지 사항이 있습니다:

  • 정책 문은 사용자가 교수들이 생성한 성적표 파일에 접근할 수 없도록 해야 합니다. 성적 데이터를 보호하는 것이 중요한 요구 사항이며, 파일 유형이나 파일 수는 중요하지 않습니다. 모든 학생 정보는 기밀로 유지되어야 하며, 접근이 제한된 위치에 저장되어야 합니다!

  • 성적표 데이터는 S3 버킷 (예: grdbk-data-fall-2023) 에 저장될 예정입니다. 교수들은 학교의 정책을 준수하기 위해 해당 버킷에 데이터를 저장하는 것이 승인되었습니다.

  • 보안 관점에서 우리의 목표는 student-user1이 버킷 내부의 데이터에 접근하지 못하게 하는 것입니다. 일반적으로 이러한 정책은 모든 학생에게 적용되지만, 이번 연습에서는 단순화를 위해 한 명의 사용자에 초점을 맞추겠습니다.

마지막으로 도움말을 드리자면, 이전에 본 IAM 정책인 AmazonS3ReadOnlyAccess는 S3 버킷에 대한 사용자의 접근을 몇 가지 작업으로 제한하는 좋은 예입니다:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3-object-lambda:Get*",
                "s3-object-lambda:List*"
            ],
            "Resource": "*"
        }
    ]
}

이 정책은 참고할 만한 좋은 예이지만, 우리의 요구 사항에는 너무 제한적입니다. 그 이유는 무엇일까요? 리소스 요소에 사용된 와일드카드('*') 때문에 모든 S3 버킷에 대해 학생의 접근을 제한하기 때문입니다. 특정 버킷에만 적용될 수 있는 유사한 정책을 작성할 수 있다면 우리의 목표를 달성할 수 있습니다.

한 번 도전해 보세요!

참고: 텍스트 편집기 또는 IDE를 사용하여 정책 문을 작성하고 나중에 사용할 수 있도록 저장하세요. 그리고 정책에 이름을 지정하세요(예: IAM-custom-policy.json).