서론
보통은 CLI가 불편하고 GUI가 편한데 S3를 사용하다보니
AWS 콘솔(GUI)에서 S3 파일 업로드 및 다운로드가 불편하고 오히려 CLI가 익숙해지면 훨씬 편한듯하다.
콘솔이 불편해서 알게 된 S3 cli 접속 및 업다운로드하는 방법을 기록해보자.
※ macOS 기준으로 작성함.
이외에 필요한 내용은 공식 홈페이지에 다 나와있으니 참고해보자.
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-welcome.html
1. 설치
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
2. 설치확인
aws --version
# aws-cli/2.4.5 Python/3.8.8 Darwin/18.7.0 botocore/2.4.5
3. configure 설정
IAM 엑세스키 발급 : AWS console → IAM → 사용자 → 사용할 계정 → 보안자격증명 탭 → 액세스키 만들기
※ Secret Access Key는 다시 확인할 수 없으니 확실히 백업해놔야함!
# IAM 엑세스 키 발급 후
aws configure
AWS Access Key ID : myAccessKeyID
AWS Secret Access Key : mySecretAccessKey
Default region name : ap-northeast-2 # -> 서울
Default output format : #그냥 엔터
3-1. 세션토큰얻기 (MFA 설정했을 경우, 안했으면 4번으로)
디바이스 시리얼 넘버 확인 : AWS console → IAM → 사용자 → 사용할 계정 → 보안자격증명 탭 → 할당된 MFA 디바이스
# 공식
# aws sts get-session-token \
# --serial-number <serial number> \
# --token-code <code> # OTP code
aws sts get-session-token \
--serial-number 'arn:aws:iam::111111111111:mfa/wr-nood.tistory.com' \
--token-code 222555
# {
# "Credentials": {
# "AccessKeyId": "AAAAAAAAAAAAA",
# "SecretAccessKey": "AAAAAAAAAAAAABBBBBBBBBBBBB",
# "SessionToken": "AAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCC",
# "Expiration": "2022-08-08T13:30:59+00:00"
# }
# }
3-2. 토큰 셋팅
# 한줄씩 입력
export AWS_ACCESS_KEY_ID=AAAAAAAAAAAAA
export AWS_SECRET_ACCESS_KEY=AAAAAAAAAAAAABBBBBBBBBBBBB
export AWS_SESSION_TOKEN=AAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCC
4. 연결확인
aws s3 ls
5. 다운로드
# [파일다운]
# 공식 : aws s3 cp <s3 fiel url> <local file path>
aws s3 cp s3://wr-nood/web/aaa.html ./
# [폴더다운]
# 공식 : aws s3 cp --recursive <s3 url> <local path>
aws s3 cp --recursive s3://wr-nood/web/ ./
6. 업로드
# cp = 교체, sync = 바뀐것만(오래걸림)
# 공식 : aws s3 (cp or sync) <local path> <s3 path> --acl <권한>
aws s3 cp aaa.html s3://wr-nood/web/aaa.html --acl public-read
aws s3 sync ./ s3://wr-nood/web/ --acl public-read
권한 종류 : https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object-acl.html#options
7. 다음에 다시 연결 시 (MFA 사용일 경우만)
unset AWS_SESSION_TOKEN AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# 그다음 3-1번부터 시작
'DevOps > AWS' 카테고리의 다른 글
GitLab + Jenkins + S3 (0) | 2022.08.31 |
---|
댓글