AWS 로그인 - IAM - 사용자
사용자에게 권한은 그룹을 만들어서 관리할수도 있고 직접 연결할수도 있다. 추후에 진행가능함.
사용자 그룹은 권한 및 정책을 묶어서 관리할수 있게 해준다.
IAM 유저로 접속하면 아무런 권한도 없으므로 어떤 서비스도 이용할 수 없다. 심지어 보는것조차 불가능하다.
그러기 위해서는 정책이 필요한데, 정책이란
사전에 설정된 정책도 있고 사용자가 상황에 맞게 직접 정책을 생성할 수도 있다.
직접 토글을 선택해서 권한을 설정해줄수도 있고 json 문서로 한번에 정책을 작성할 수도 있다. 편한대로 하면 된다.
모든 S3 버킷 목록 조회 권한 부여 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "*"
}
]
}
특정 버킷의 목록 조회 권한 부여 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::example-bucket"
}
]
}
특정 버킷의 객체 조회 및 업로드 권한 부여 정책
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}
원래는 이렇게 유저id나 리전 명시해야 한다. AWS 정책에서 리전을 명시하지 않으면 그 정책은 기본적으로 모든 리전에 적용되어버린다.
arn:partition:service:region:account-id:resource
인스턴스 생성해보고 거기서 테스트 파일 올려보기
이번에는 만들때 우분투가 아닌 아마존 리눅스로 os를 만든다. 터미널에서 진행하면 된다.
역할을 만든다.
만들어둔 역할 인스턴스에 적용
sudo su 로 터미널에 접속
현재는 버킷에 아무것도 없다
위 명령어를 입력하면
echo "테스트 파일입니다" > testfile.txt
aws s3 cp testfile.txt s3://<버킷이름>/
S3 버킷 내용 확인:
sh
코드 복사
aws s3 ls s3://<버킷이름>/
S3 버킷에서 파일 다운로드 및 내용 확인:
sh
코드 복사
aws s3 cp s3://<버킷이름>/testfile.txt downloaded_testfile.txt
cat downloaded_testfile.txt
!
다운로드 받은 파일의 내용을 확인해볼수 있다
다음과 같은 명령어를 통해 1시간동안만 접근 권한을 줄 수도 있다.
aws sts getsessiontoken -serialnumber arn aws iam::123456789012:mfa/YourMFADeviceName - token code 123456 - duration seconds 3600
인스턴스를 어제와 같이 실행했는데도 터미널에서 접속이 안되서 시간이 지체됐었는데 알고보니 라우팅 테이블에 인터넷 게이트웨이 연결을 안해놨었다.
아직은 인스턴스를 설정하는데 부족함이 많다는 것을 알았고 s3 버킷은 실무에서도 많이 사용되는 서비스이고 처음부터 루트 사용자로 시작하지는 않을테니 IAM에 대한 이해를 더 깊게 해야겠다.