쪼렙 as! 풀스택

S3 - SDK(PHP) 로 사용하기 #1 - 안전하게 권한 설정하기. 본문

개발 일지/AWS

S3 - SDK(PHP) 로 사용하기 #1 - 안전하게 권한 설정하기.

코코앱 2017. 5. 19. 12:22

서버단(PHP)에서 AWS SDK 를 이용해, S3 에 파일을 올리거나 삭제할 수 있도록 하겠습니다. AWS 에서 SDK 에 사용할 계정을 생성하고 (Access Key) 를 발급받아야 합니다. 이 Access Key 를 이용해서 AWS 의 서비스를 제어할 수 있는데, 그 계정에 너무 큰 권한을 줘버리면 보안에 취약할 수 있으므로, 꼭 필요한 권한만을 제한적으로 발급하여 계정 Access Key를 발급받도록 합시다. 여기에서는, 특별히 S3 - (방금만든) 버킷하나 - Get Object, Put Object, Delete Object 요렇게 딱 3개만 할 수 있는 권한이 있는 계정을 만들고 Access Key를 발급받도록 하겠습니다.




1. 권한설정이 된 사용자(User)를 만들도록 하겠습니다. AWS 서비스 - IAM 을 선택합니다. - 좌측에 Users 탭 - Add User 클릭.








2. 유저이름 입력. Programmatic Access 를 선택합니다. 콘솔 엑세스는 권한이 너무 크므로 체크 안하겠습니다. - Next Permissions 클릭.






3. 퍼미션 설정하는데서, Attach Existing policies directly 를 선택합니다. 여기서 아마존이 이미 만들어둔 여러가지 퍼미션들을 선택할 수 있는데요, 여기서는 특별히 더 작은 퍼미션을 직접 만들어 보겠습니다. Create Policy 선택.






4. 새창이 뜹니다. Policy Generator 를 선택하여 직접 만들겠습니다.





5. S3 서비스에 - Actions는 Delete Object, GetObject, PutObject 요렇게 3개만 선택합니다.

그리고 ARN 입력하는곳에 제어할 특정 버킷 리소스를 입력합니다.  ///   arn:aws:s3:::<내 버킷이름>/*       

그리고 Add Statement 클릭.




6. 방금 설정한 Policy 에 대한 설명이 나옵니다. Next Step 합니다.





7. Review Policy 에서, 내가 만든 Policy 이름과, 설명을 씁니다. 그리고 Validate Policy 하면, 상단에 녹색바에 valid 표시가 되면 문제없단 뜻입니다. Create Policy 누릅니다.







8. 현재까지 작업하던 (새창으로열린)Policy 창은 닫아버리고, 아까 퍼미션 설정하던 (3번상태) 로 돌아가봅시다. Filter 를 Customer managed 로 선택해보면 제가 직접만든 정책들이 나옵니다.





9. 만약 방금 만든 정책이 표시가 안된다면  Refresh 눌러보세요~ 그리고 방금 만들었던 정책의 이름을 체크 하고 Next Review 합니다.






10. Create User 를 누릅니다.






11. 유저가 생성되었습니다. 여기서 나오는 Access Key ID 와, Scret Access Key 를 복사해서 어디다 적어둡니다.




12. 방금 만든 User 가 생성되어있습니다. 이제 이 유저의 Access Key를 이용해서 SDK 로 AWS 서비스에 접근할 수 있습니다.




13. 만약, Access Key 와 Secret Key 를 잊어먹었다면, Security credentials 에서 새로 발급받을 수 있습니다. Secret Key는 발급받는 순간에만 확인할 수 있으니, 잘 적어두셔야 합니다.











Comments