Skip to content

Commit

Permalink
Processed Markdown files using obs3dian
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkjin99 committed Aug 8, 2024
1 parent 8a9fb32 commit fbe032e
Show file tree
Hide file tree
Showing 21 changed files with 84 additions and 84 deletions.
2 changes: 1 addition & 1 deletion AWS/EC2/로드밸런싱.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ ___

서버에 요청을 전달하기 이전에 라는 말에 집중하자. 로드밸런서는 서버의 앞 단에 위치해 요청을 서버보다 먼저 전달받는 역할을 수행한다. 그림으로 보면 아래와 같다.

![[Pasted image 20240719211054.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/%EB%A1%9C%EB%93%9C%EB%B0%B8%EB%9F%B0%EC%8B%B1%20/%20Pasted%20image%2020240719211054.png)
클라이언트는 각 서버의 실제 주소는 파악하지 못한채 로드밸런서의 주소 만을 파악할 수 있다. 이에따라 서버의 실제 주소를 클라이언트에게 숨길 수 있어 보안성을 높일 수 있다. 또한 실제 서버로 요청을 전달하기 이전에 검증 등의 작업을 수행할 수 있어 서버의 안전성을 높일 수 있다.

>[! 엥 이거 완전 리버스 프록시 아니야?]
Expand Down
2 changes: 1 addition & 1 deletion AWS/IAM/(AWS 입문) IAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ ___

IAM은 접근 권한 설정을 유저, 그룹, 역할, 정책 총 4가지의 카테고리를 활용해 관리한다.

![[스크린샷 2024-04-11 오전 11.54.17.png|500]]
![500](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/%28AWS%20%EC%9E%85%EB%AC%B8%29%20IAM%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-11%20%EC%98%A4%EC%A0%84%2011.54.17.png)
* **유저**: 엑세스 키와 비밀 키를 가지고 AWS 리소스를 사용하는 객체를 말한다.
* **그룹**: 하나 혹은 여러 유저를 저장하고 있으며 권한을 개개인이 아닌 유저 집단에 적용할 수 있다.
* **역할**: 역할은 하나 혹은 다수의 정책을 포함할 수 있으며 유저에게 할당하는 것이 가능하다.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 문제 설명
IAM 정책을 실제로 사용하기 전에 영향 범위를 확인하려 한다.
# 해결 방법
IAM 정책을 IAM 역할에 연결하고 나서 IAM 정책 시뮬레이터로 작업한다.![[TestingIAMPolicieswiththeIAMPolicySimulator.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.4%20IAM%20%EC%A0%95%EC%B1%85%20%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C%20IAM%20%EC%A0%95%EC%B1%85%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20/%20TestingIAMPolicieswiththeIAMPolicySimulator.png)
# 작업 방법
1. assign-role.policy.json이라는 파일을 생성한다.
```json
Expand All @@ -22,7 +22,7 @@ IAM 정책을 IAM 역할에 연결하고 나서 IAM 정책 시뮬레이터로
```shell
aws iam create-role --assume-role-policy-document file://assume-role-policy.json --role-name AWSCookbook104IamRole
```
![[스크린샷 2024-04-14 오후 2.26.05.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.4%20IAM%20%EC%A0%95%EC%B1%85%20%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C%20IAM%20%EC%A0%95%EC%B1%85%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-14%20%EC%98%A4%ED%9B%84%202.26.05.png)
3. IAM 관리형 정책인 AmazonEC2ReadOnlyAccess를 생성한 IAM 역할에 연결한다.
```shell
aws iam attach-role-policy --role-name AWSCookbook104IamRole --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
Expand All @@ -39,14 +39,14 @@ aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::117855555634:
>[링크](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)를 참고한다.
EC2ReadOnly만 허용되어 있음으로 암시적인 거부를 한다.
![[스크린샷 2024-04-14 오후 3.11.58.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.4%20IAM%20%EC%A0%95%EC%B1%85%20%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C%20IAM%20%EC%A0%95%EC%B1%85%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-14%20%EC%98%A4%ED%9B%84%203.11.58.png)
그렇다면 `ec2:DescribeInstances` 작업을 해보자.


```shell
aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::117855555634:role/AWSCookbook104IamRole --action-names ec2:DescribeInstances
```
![[스크린샷 2024-04-14 오후 3.11.31.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.4%20IAM%20%EC%A0%95%EC%B1%85%20%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C%20IAM%20%EC%A0%95%EC%B1%85%20%ED%85%8C%EC%8A%A4%ED%8A%B8%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-14%20%EC%98%A4%ED%9B%84%203.11.31.png)
# 참고
IAM 정책을 사용해 AWS에서 사용하는 엑세스 관리 권한을 정의할 수 있다.
또한 IAM 정책 시뮬레이터의 콘솔을 통해 IAM 정책에 대한 영향 범위를 확인할 수 있다.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ sed -e "s|AWS_ACCOUNT_ID|${AWS_ACCOUNT_ID}|g" boundary-policy-template.json > bo
```shell
aws iam create-policy --policy-name AWSCookbook105PB --policy-document file://boundary-policy.json
```
![[스크린샷 2024-04-14 오후 4.36.14.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.5%20%EA%B6%8C%ED%95%9C%20%EA%B2%BD%EA%B3%84%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%9C%20IAM%20%EA%B4%80%EB%A6%AC%20%EA%B8%B0%EB%8A%A5%20%EC%9C%84%EC%9E%84%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-14%20%EC%98%A4%ED%9B%84%204.36.14.png)
8. policy-template.json 파일을 생성한다.
```json
{
Expand Down Expand Up @@ -185,7 +185,7 @@ sed -e "s|AWS_ACCOUNT_ID|${AWS_ACCOUNT_ID}|g" policy-template.json > policy.json
```shell
aws iam create-policy --policy-name AWSCookbook105Policy --policy-document file://policy.json
```
![[스크린샷 2024-04-14 오후 4.58.46.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.5%20%EA%B6%8C%ED%95%9C%20%EA%B2%BD%EA%B3%84%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%9C%20IAM%20%EA%B4%80%EB%A6%AC%20%EA%B8%B0%EB%8A%A5%20%EC%9C%84%EC%9E%84%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-04-14%20%EC%98%A4%ED%9B%84%204.58.46.png)
11. 정책을 연결한다.
```shell
aws iam attach-role-policy --policy-arn arn:aws:iam::$AWS_ACCOUNT_ID:policy/AWSCookbook105Policy --role-name AWSCookbook105Role
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@



![[Pasted image 20240503232608.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240503232608.png)
VPC는 기본적으로 가상의 네트워크 영역이기에 사설 아이피 주소를 가지게 된다.

- 사설 IP 대역
Expand All @@ -21,7 +21,7 @@ VPC는 기본적으로 가상의 네트워크 영역이기에 사설 아이피
이렇게 3개의 대역을 가지며,
하나의 VPC에는 위의 네트워크 대역, 혹은 서브넷 대역이 할당 가능하다.

![[Pasted image 20240503233116.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240503233116.png)

예시로 10.0.0.0/16의 아이피 주소를 VPC에 할당한 상황에서,
VPC를 원하면 다시 서브넷으로 나눠서 (단, VPC를 나눈 서브넷을 다시 나누지는 못한다!)
Expand All @@ -39,7 +39,7 @@ VPC를 원하면 다시 서브넷으로 나눠서 (단, VPC를 나눈 서브넷

>어떻게 Public Subnet을 만드는데?
![[Pasted image 20240504100036.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240504100036.png)
AWS의 Internet Gateway를 통해 해당 서브넷을 퍼블릭 서브넷이 되게 할 수 있다.
서브넷이 외부와 통신할 때, Internet Gateway를 거치게 하면 외부와 통신이 가능하게 된다!
>퍼블릭 서브넷으로 만들고 싶은 서브넷을 인터넷 게이트웨이를 통해 밖으로 나가도록 라우팅 테이블을 설정을 해줘야한다.
Expand Down Expand Up @@ -69,15 +69,15 @@ private Subnet은 Public Subnet과 달리,
- 보안 강화
- SSH 접근은 인스턴스가 외부로부터 공격 받을 수 있는 벡터를 제공하므로, 특정 상황에는 이를 완전히 차단한다.
- 예 : 금융기관이나 의료 데이터를 처리하는 회사에서는 데이터 보안 및 개인정보 보호 규정을 엄격히 준수해야 한다. 이런 기관들은 외부 공격의 위험을 최소화하기 위해 프라이빗 서브넷에 EC2 인스턴스를 배치하고, 외부 네트워크 접속을 차단한다. 이 경우, AWS Systems Manager의 Session Manager를 사용하여 인스턴스에 접근하며, 모든 접속 기록과 데이터 전송은 AWS CloudTrail과 CloudWatch를 통해 로깅되어 감사 및 모니터링이 이루어지게 된다.
- ![[Pasted image 20240504102002.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240504102002.png)

- 관리 및 운영 자동화
- 대규모 클라우드 인프라를 운영하는 기업에서는 수백 개의 인스턴스를 효율적으로 관리하기 위해 자동화 도구를 사용합니다.
- 이러한 기업은 AWS Lambda 함수를 활용하여 프라이빗 서브넷 내의 EC2 인스턴스에 대한 유지보수 작업(예: 소프트웨어 업데이트, 설정 변경 등)을 자동으로 수행합니다.

## 해결 방법

![[Pasted image 20240504102208.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240504102208.png)
- IAM 역할을 생성하고, `AmazonSSMManagedInstanceCore`정책에 연결한다.
- EC2 인스턴스 프로필을 생성하고 생성한 IAM 역할을 인스턴스 프로필에 연결한다.
- EC2 인스턴스 프로필을 EC2 인스턴스에 연결하고
Expand All @@ -87,7 +87,7 @@ private Subnet은 Public Subnet과 달리,
- Amazon VPC내에 배포된 프라이빗 서브넷 및 라우팅 테이블
- [AWS System Manager에 필요한 VPC 엔트포인트](https://repost.aws/ko/knowledge-center/ec2-systems-manager-vpc-endpoints)
- [Session Manager 플러그인을 설치한 AWS CLI v2](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
![[Pasted image 20240505203639.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240505203639.png)


##### EC2 운영체제에 맞게 SSM Agent를 수동설치
Expand All @@ -102,7 +102,7 @@ SSM은 Aws System Manager로 AWS 리소스를 통합적으로 관리하고 자
ssh 없이 원격으로 명령 실행 가능하다.

##### 역할 생성
![[Pasted image 20240505200921.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240505200921.png)
만든 역할을 ec2->작업->보안->IAM역할 수정 탭을 눌러서 EC2 인스턴스에 역할을 연결한다.

##### VPC Endpoint
Expand Down Expand Up @@ -197,14 +197,14 @@ HttpTokens=required,HttpPutResponseHopLimit=64,HttpEndpoint=enabled \
--output text)
```
8. 확인
![[Pasted image 20240505212412.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240505212412.png)
```
aws ssm describe-instance-information \
--filters Key=ResourceType,Values=EC2Instance \
--query "InstanceInformationList[].InstanceId" --output text
```
9. 실행
![[Pasted image 20240505212525.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.6%20AWS%20SSM%20Session%20Manager%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EC2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%20%EC%97%B0%EA%B2%B0%20/%20Pasted%20image%2020240505212525.png)

#### Session Manager의 장점
- 인스턴스와 연결된 보안 그룹에서 인터넷 연결 TCP 포트를 허용할 필요가없다.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
- 물리적으로 거리가 멀면 멀수록 지연시간이 생길 수 밖에 없다.
- 이럴 때 클라이언트와 서버 중간에 캐시 서버를 두어 속도를 높이는 것

![[스크린샷 2024-06-10 14.32.48.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/CloudFront%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20S3%EC%97%90%EC%84%9C%20%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C%20%EC%9B%B9%20%EC%BD%98%ED%85%90%EC%B8%A0%20%EC%A0%9C%EA%B3%B5%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-06-10%2014.32.48.png)

- “엣지 로케이션”이라고 하는 aws 데이터 센터를 이용하여 전세계 네트워크를 통해 콘텐츠를 제공
- 일반적인 웹 서버에서 이미지의 경우 url을 통해 제공되어짐
Expand All @@ -36,11 +36,11 @@
1. 전역 엣지 로케이션인 POP는 사용자에게 가장 가까운 위치.
2. 리전 엣지 캐시는 POP와 오리진 서버 사이에 위치, POP보다는 덜 사용되는 데이터들의 정보를 가지고 있다.

![[스크린샷 2024-06-05 13.42.47.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/CloudFront%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20S3%EC%97%90%EC%84%9C%20%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C%20%EC%9B%B9%20%EC%BD%98%ED%85%90%EC%B8%A0%20%EC%A0%9C%EA%B3%B5%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-06-05%2013.42.47.png)

## 사용 사례
- s3 + cloudFront로 정적 웹 콘텐츠 (html, css, js)의 전송속도를 높일 수 있다.
![[스크린샷 2024-06-10 13.35.31.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/CloudFront%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20S3%EC%97%90%EC%84%9C%20%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C%20%EC%9B%B9%20%EC%BD%98%ED%85%90%EC%B8%A0%20%EC%A0%9C%EA%B3%B5%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-06-10%2013.35.31.png)
- 미디어를 스트리밍하기 위한 몇 가지 옵션을 제공한다
- 온디맨드 비디오 : hls, mpeg dash 등과 같은 일반적인 포맷으로 디바이스에 상관없이 스트리밍 가능
- 라이브 스트리밍 : 엣지에 미디어 조각을 캐싱하여 해당 소작을 올바른 순서로 전송하는 manifast 파일에 대한 여러 요청을 결합함으로써 오리진 서버의 부하를 줄일 수 있음.
Expand Down
22 changes: 11 additions & 11 deletions AWS/KMS/1.7 KMS 키를 사용해 EBS 볼륨 암호화.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,58 +39,58 @@


### CMK 동작방식
![[스크린샷 2024-05-11 오후 7.36.51.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.36.51.png)
1) KMS 에 Customer Master key(CMK)를 생성한다. 이 Master key 는 데이터를 암호화 하기 위해 사용되는 **Data key**를 생성하는데 사용
2) **Data key**는 CMK 로부터 _**GenerateDataKey**_ 라는 작업을 통해 생성, 이때 생성되는 Data key 는 크게 두가지 종류로 Plaintext data key와 Encrypted data key가 있다.
3) Plaintext data key는 데이터를 암호화 하는데 사용한다. 암호화를 마무리 한 후 Plaintext data key를 메모리에서 삭제. 암호화된 데이터와 Encrypted data key를 한 묶음으로 데이터를 전송
4) 암호화된 데이터를 복구화 해야함 -> 아까 버린 Plaintext data key가 필요.
동봉된 Encrypted data key와 master key를 사용해서 다시 Plaintext data key를 생성. 그 후 데이터 복호화.
![[스크린샷 2024-05-11 오후 7.39.31.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.39.31.png)


### aws console에서 암호화하는법
- ec2 볼륨 생성 시 Encryption 체크하면 KMS를 사용하여 암호화 키 생성 가능
![[스크린샷 2024-05-11 오후 5.30.08.png]]
![[스크린샷 2024-05-11 오후 5.30.27.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%205.30.08.png)
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%205.30.27.png)


### KMS 키를 사용해 EBS 볼륨 암호화
1. KMS 키를 생성하고 키 ID를 변수에 저장
```bash
KMS_KEY_ID=$(aws kms create-key --description "AWSCookbook187Key" --output text --query 'KeyMetadata.KeyId') echo "Created KMS Key ID: $KMS_KEY_ID"
```
![[스크린샷 2024-05-11 오후 6.57.32.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%206.57.32.png)

2. 키 별칭을 생성
```bash
aws kms create-alias --alias-name alias/AWSCookbook187Key --target-key-id $KMS_KEY_ID
echo "Alias 'alias/AWSCookbook187Key' created for Key ID: $KMS_KEY_ID"
```
![[스크린샷 2024-05-11 오후 6.59.19.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%206.59.19.png)

3. 키의 자동 교체를 활성화
```bash
aws kms enable-key-rotation --key-id $KMS_KEY_ID
echo "Key rotation enabled for Key ID: $KMS_KEY_ID"
```
![[스크린샷 2024-05-11 오후 7.00.52.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.00.52.png)

4. EBS 암호화를 기본으로 활성화
```bash
aws ec2 enable-ebs-encryption-by-default
echo "EBS encryption by default is enabled."
```

![[스크린샷 2024-05-11 오후 7.03.52.png]]
![[스크린샷 2024-05-11 오후 7.03.43.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.03.52.png)
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.03.43.png)

5. EBS 기본 KMS 키를 설정
```bash
aws ec2 modify-ebs-default-kms-key-id --kms-key-id alias/AWSCookbook187Key echo "EBS default KMS key set to: alias/AWSCookbook187Key"
```

![[스크린샷 2024-05-11 오후 7.05.57.png]]
![[스크린샷 2024-05-11 오후 7.05.48.png]]
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.05.57.png)
![](https://csocrates-s3.s3.ap-northeast-2.amazonaws.com/1.7%20KMS%20%ED%82%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%B4%20EBS%20%EB%B3%BC%EB%A5%A8%20%EC%95%94%ED%98%B8%ED%99%94%20/%20%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202024-05-11%20%EC%98%A4%ED%9B%84%207.05.48.png)

### Key 삭제 방법
- KMS 에서 제공되는 key 를 삭제할 경우, 만약 해당 key를 활용해 암호화된 데이터가 있다면 복호화는 영원히 불가능.
Expand Down
Loading

0 comments on commit fbe032e

Please sign in to comment.