#!/bin/bash# S3 관련 정보 확인 스크립트 (버킷 이름을 첫 번째 파라미터로 전달받음)# 첫 번째 파라미터로 S3 버킷 이름을 받음
bucket_name="$1"# 버킷 이름이 전달되지 않은 경우 에러 출력if [ -z "$bucket_name" ]; thenecho"Usage: $0 <bucket-name>"echo"Example: $0 sungbin-s3-demo-bucket-ap-northeast-2"exit 1
fiecho"==== S3 Bucket 정보 확인 중 ===="echo"==== 환경 변수로 설정된 인증 정보 확인 ===="# env_auth: AWS 환경 변수에 설정된 인증 정보 확인
env | grep -i AWS
echo"==== AWS CLI에 설정된 Access Key와 Secret Access Key 확인 ===="# Access Key와 Secret Access Key 확인echo"Access Key ID:"
aws configure get aws_access_key_id
echo"Secret Access Key:"
aws configure get aws_secret_access_key
echo"==== 현재 설정된 리전(region) 확인 ===="# CLI에 설정된 리전 확인
aws configure get region
echo"==== 특정 버킷의 위치(location) 확인 ===="# S3 버킷의 위치 (리전) 확인
aws s3api get-bucket-location --bucket "$bucket_name"echo"==== S3 버킷의 제약 조건(constraint) 확인 ===="# S3 버킷의 LocationConstraint 값 확인
aws s3api get-bucket-location --bucket "$bucket_name"echo"==== S3 버킷의 액세스 제어 리스트(ACL) 확인 ===="# S3 버킷의 ACL 정보 확인
aws s3api get-bucket-acl --bucket "$bucket_name"echo"==== S3 버킷의 서버 측 암호화(server side encryption) 설정 확인 ===="# S3 버킷의 서버 측 암호화 설정 확인
aws s3api get-bucket-encryption --bucket "$bucket_name" || echo"No encryption found for this bucket."echo"==== S3 버킷에서 KMS 키 ID(sse_kms_key_id) 확인 ===="# S3 KMS Key ID 확인 (server-side encryption 설정 확인 시 함께 출력됨)
aws s3api get-bucket-encryption --bucket "$bucket_name"echo"==== S3 버킷의 모든 객체 및 스토리지 클래스(storage_class) 확인 ===="# S3 버킷의 모든 객체 리스트 가져오기
aws s3 ls "s3://$bucket_name" --recursive | awk '{print $4}' > object_list.txt
# 각 객체의 스토리지 클래스 확인while IFS= read -r object_key; doecho"Object Key: $object_key"
aws s3api head-object --bucket "$bucket_name" --key "$object_key" | grep StorageClass || echo"No StorageClass found for this object."done < object_list.txt
# 스토리지 클래스 조회
cat object_list.txt
# 임시 파일 삭제
rm -f object_list.txt
echo"==== 모든 작업 완료 ===="