패스트캠퍼스 캐시백 챌린지 41일차
AWS의 key Management Service를 활용하는 클립을 수강하는 식으로 챌린지를 진행하였다. aws-encryption-sdk를 설치하고 encryption,decryption을 해볼 수 있는 과정이었다. 이전에 password 같이 민감한 정보들이 github같은곳에 노출이 되어있고 수집될 수 있어 보안적으로 취약한 사례가 많다고 들었었는데, AWS 서비스를 활용해서 그런 부분들을 보완할 수 있겠다고 여겼다. 다음포스팅은 AW CodeCommit에 관한 포스팅을 할 예정이다.
AWS KMS 실습
KMS 서비스에서 키 생성이 가능하다.
키 유형으로 대칭키, 비대칭키 방식을 선택할 수 있다.
고급옵션 kms 선택하고 생성한뒤, 이후에 IAM 관리자,사용자를 선택하여 키를 관리하고 사용할 권한을 부여해주면 된다.
python의 경우에는 python을 먼저 설치하고 aws-encryption-sdk 를 설치하여야 충돌이 생기지 않는다고 한다
EC2를 하나 생성해주고 다음의 작업들을 진행해준다.
sudo apt update
sudo apt install awscli
aws configure
sudo apt install python3-pip
pip install aws-encryption-sdk
vi main.py
import aws_encryption_sdk
from aws_encryption_sdk import CommitmentPolicy
client = aws_encryption_sdk.EncryptionSDKClient(commitment_policy=CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT)
key_arn ="{생성해준 cmk arn}"
source_plaintext="hi"
kms_kwargs = dict(key_ids=[key_arn])
master_key_provider = aws_encryption_sdk.StrictAwsKmsMasterKeyProvider(**kms_kwargs)
ciphertext, encryptor_header = client.encrypt(source = source_plaintext,key_provider=master_key_provider)
print(ciphertext)
cycled_plaintext,decrypted_header = client.decrypt(source = ciphertext, key_provider=master_key_provider)
print(cycled_plaintext)
(cmk에 접근하려면 client-side에 작업을해야하기에 client를 생성을해주는 것이다.)
hi 라는 text가 encrypt되고 decrypt되는 것을 확인할 수 있다.
이를 활용해 Password, Id, Access ID 등등.. 노출시키고 싶지않은 내용들을 암호화해서 Client상에 노출되지 않도록 하며 설령 코드가 털리더라도 어느 정도 보안적으로 보완이 될 수 있다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.