Skip to content

Instantly share code, notes, and snippets.

@ksmin23
Last active September 15, 2024 11:36
Show Gist options
  • Select an option

  • Save ksmin23/531a3a6e171cb6f79c7c857468cc3986 to your computer and use it in GitHub Desktop.

Select an option

Save ksmin23/531a3a6e171cb6f79c7c857468cc3986 to your computer and use it in GitHub Desktop.
Useful Commands for SaaS Metering System on AWS Workshop

1. Workshop URL

https://catalog.workshops.aws/saasmetering

2. AWS 계정 환경 설정

  • region 정보 가져오기

    aws configure get region
    
  • region 정보 변경하기

    aws configure set region <region-name (e.g, us-west-2)>
    
  • aws cli - configure

3. CDK 설치하기

npm install -g aws-cdk

4. CDK 명령어

  • CDK 버전(Version) 확인하기
    cdk --version
    
  • CDK toolkit 스택(Stack) 배포 - CDK 프로젝트를 처음 시작하는 사용자는 실행이 필요함
    cdk boostrap
    
  • CDK 스택(Stack) 목록 확인하기
    cdk list
    
  • CDK 스택(Stack) 합성하기 - CloudFormation 파일 생성하기
    • 전체 스택 합성하기
    cdk synth --all
    
    • 특정 스택만 합성하기
    cdk synth -e <스택 이름>
    
  • CDK 스택(Stack) 배포하기
    • 전체 스택 배포하기
    cdk deploy --require-approval never --all
    
    • 특정 스택만 배포하기
    cdk deploy --require-approval never -e <스택 이름>
    
  • CDK 스택(Stack) 삭제하기
    • 전체 스택 배포하기
    cdk destroy --force --all
    
    • 특정 스택만 하기
    cdk destroy --force -e <스택 이름>
    

5. Amazon Athena 관련 명령어

  • 데이터베이스 목록 확인

    aws athena list-databases
    
  • Work-group 전체 목록 확인

    aws athena list-work-groups
    
  • 특정 Work-group 확인

    aws athena get-work-group --work-group <work-group-name>
    
  • Work-group 삭제

    aws athena delete-work-group --work-group <work-group-name>
    
  • aws cli - athena

6. LakeFormation 권한 부여하기

  • IAM User로 AWS 웹 콘솔에 접속한 경우

    • 데이터베이스 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<IAM-User-Id> \
    --permissions CREATE_TABLE DESCRIBE ALTER DROP \
    --resource '{ "Database": { "Name": "<mydatabase>" } }'
    
    • 테이블 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:user/<IAM-User-Id> \
    --permissions SELECT DESCRIBE ALTER INSERT DELETE DROP \
    --resource '{ "Table": {"DatabaseName": "<mydatabase>", "TableWildcard": {}} }'
    
  • IAM Identity Center로 AWS 웹 콘솔에 접속한 경우 (ControlTower를 사용하는 경우)

    • 데이터베이스 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/aws-reserved/sso.amazonaws.com/<AWSReservedSSO_AWSAdministratorAccess_2685db64509813aa> \
    --permissions CREATE_TABLE DESCRIBE ALTER DROP \
    --resource '{ "Database": { "Name": "<mydatabase>" } }'
    
    • 테이블 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/aws-reserved/sso.amazonaws.com/<AWSReservedSSO_AWSAdministratorAccess_2685db64509813aa> \
    --permissions SELECT DESCRIBE ALTER INSERT DELETE DROP \
    --resource '{ "Table": {"DatabaseName": "<mydatabase>", "TableWildcard": {}} }'
    
  • isengard로 AWS 웹 콘솔에 접속한 경우

    • 데이터베이스 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<Admin-Role-Name> \
    --permissions CREATE_TABLE DESCRIBE ALTER DROP \
    --resource '{ "Database": { "Name": "<mydatabase>" } }'
    
    • 테이블 권한
    aws lakeformation grant-permissions \
    --principal DataLakePrincipalIdentifier=arn:aws:iam::<account-id>:role/<Admin-Role-Name> \
    --permissions SELECT DESCRIBE ALTER INSERT DELETE DROP \
    --resource '{ "Table": {"DatabaseName": "<mydatabase>", "TableWildcard": {}} }'
    
  • aws cli - lakeformation grant-permissions

  • aws cli - lakeformation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment