AWSKRUG 활동 목록

※AWS 강남 비기너 그룹에서 활동 하고 있습니다. 다양한 경험 접해보고 싶습니다.
AWSKRUG 슬랙[커뮤니케이션]
AWS 유저그룹 사이트
AWSKRUG Meetup
AWSKRUG Facebook

18년 11월 26~30일 AWS Summit 이 있습니다. 참가하시는 분들은 부럽네요 ~ 

AWS 슬랙 그룹 가입 하셔서 #gangnambeginner 채널에서 인사 부탁드려요
관련 행사 참석에 관심 있으신 분은 아래 달력 참고하시길 바래요~

Slack 가입 안되시는 분들은 링크 참고

AWSKRUG 이벤트 구글 캘린더

AWS SAA 합격 후기 도 필요하신 분 참고 바라요~

Advertisements

Rest API & SOAP 간단한 고촬

REST API

REST 은 대표적으로 JSON을 사용한다.  손쉬운 데이터 교환이 목적. 간편하게 데이터를 주고 받음.

네트워크 환경에서 활용할 수 있는 자원을 최대한 활용하기 위해 개발 됨.

REST 요청/응답 예제


 계속 읽기 

TCP + SSL HANDSHAKE 기초

TCP HANDSHAKE 는 3단계로 이루어진다.

  1. 클라이언트 (B) 가 서버 (A)에게 SYN[안녕?]을 보낸다.
  2. 서버 (A) 가 SYN/ACK[잘 지내, 안녕?]을 보낸다.
  3. 클라이언트가 (B) 가 ACK[잘 지내] 한 후 통신한다.      (종료할땐 FIN을 보낸다)

TLS/SSL 통신은, TCP 통신이 이루어 진 후, 아래와 같은 작업이 추가로 진행된다.

1. B 가 client_hello 보낸다.
2. A 가 server_hello 보낸다.
3. A 가 서버인증서, 서버공개키, 클라이언트키 요청 보낸 후 server_hello_done 보낸다.
4. B 가 인증서, 클라이언트키를 보낸 후, cert_verify[해쉬키] 보낸다
5. B 가 change_cipher_spec[암호화스펙업데이트] 을 보낸 후 fin 한다.
6. A 가 change_cipher_spec 을 보낸 후 fin 한다.

 

 

 

 

 

인터넷 상 보안 통신 기초

인터넷 상에서 믿을 수 있는 정보를 교류를 하기 위해서는 어떠한 수단 이 필요하다.

현대에서 가장 많이 사용되는 방법인 ssh 및 ss현대에서 가장 많이 사용되는 암호화 방법인 ssh 및 https 방법에서는 디피헬만 기법을 사용한다. 디피헬만 기법을 간단하게 개념잡으면 다음과 같다. 디피헬만 키 교환 법은 휫필드 디피와 마틴 헬먼이 1976년에 발표하였다. 디피-헬먼 키 교환은 통신을 하는 대상과 비밀 정보를 공유할 수 있지만, 상대방에 대한 인증은 보장되지 않으며 중간자 공격이 가능하다.디피헬만 키 방식은 두 색의 페인트를 섞은 후 원본의 두 색깔을 찾아내기 어려운 점을 이용한 것과 유사하다. 일반적인 서버와 클라이언트 암호화는 다음과 같이 이루어진다.

1. 서버(A) 와 클라이언트(B)가 암호화방식(x)을 약속한다.
2. A 가 약속된 인증서(x)를 보낸다.
3. B 가 자신의 암호화를 추가한다(x+b).
4. A 도 암호화를 시작한다(x+a).
5. 서로의 암호화된 인증서를 받은 후, 자신의 암호화를 추가한다.
6. A[x+a+b], B[x+a+b] 상태로 양측은 같은 암호화 키를 공유한다. (중간자는 a,b를 알기 어렵다)
7. 모든 메시지는 암호화된다.

암호화가 진행되더라도, 공격은 가능하기 때문에, 인터넷 상에서 누구를 믿을 수 있는 가는 중요한 문제이다. 서버와 클라이언트 사이의 통신에서 서로가 공격받지 않음을 보장받기 위해서는 현대에서는 인증기관의 도움을 받는다. 인증 기관의 역할은 단순하다.
1.회사에서 인증기관에 인증서를 요구한다.
2.인증기관에서 인증된 인증서를 발급해준다.
3.인증서를 서버에 설치한다.
4.ROOT CA가 발급된 브라우저를 사용한다.
5.브라우저는 인증기관에서 인증받은 키를 사용하여 안전하게 통신한다.

AWS Cross Account [Switch Role] 사용해보기

여러개의 AWS 어카운트를 이동하려면 브라우저당 한개의 로그인 세션만 지원하기 때문에 어려움이 있습니다.

이러한 어려움을 해결하기 위해서, AWS 에서는 Switch Role 이라는 기능을 지원하며, 소개드리고자 합니다.

우선 어카운트 2개가 필요합니다. 어카운트 A 에서 어카운트 B로 전환하는 시나리오를 보여드리겠습니다.

우선 접속하고자 하는 어카운트 B 에서 Role을 생성해줍니다. 생성 시에 다른 어카운트의 정보를 넣은 후 ReadOnly로 생성해 보겠습니다.


IAM Management Console 2018-09-19 10-25-23

Role을 생성하게되면, 아래와 같이 switchrole url 이 생성됩니다. 이 URL을 어카운트 A 로그인 후 실행하면, 바로 스위치가 가능해집니다. [쉬워서 참 좋습니다.]

https://signin.aws.amazon.com/switchrole?roleName=switch-role&account=kyupokaws

콘솔 우측 상단의 버튼을 클릭하면 언제든지 스위치가 가능합니다.

오늘도 참 쉽게 끝났습니다. 모든게 항상 이렇게 쉬웠으면 좋겠네요 ^^

AWS Session Manager 사용해보기

Session Manager 는 쉘프로그램 없이 EC2 OS에 접근할 수 있는 방법입니다.

EC2콘솔에서는 불가능하며, Systems Manager 콘솔에서 실행해야합니다.

AWS Systems Manager - Session Manager 2018-09-18 15-29-09.png

 

#### SSM Agent 설치 시
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo start amazon-ssm-agent
sudo status amazon-ssm-agent

 

### SSM Agent EC2 Role
AmazonEC2RoleforSSM policy 부착하여 role 1개 만들어서 EC2에 부착

 

### Session Manager 접근 IAM User최소 권한 policy 문서 [아니면 admin 으로 접근]

https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/getting-started-restrict-access-quickstart.html

AWS EC2 사용해보기

안녕하세요, KYUPOK 입니다.

AWS EC2를 시작하시려는 분들을 위해 글 적어봅니다.

우선 들어가기에 앞서, AWS 파란색 버튼은 시작하는 사람들에게 좋은 버튼이라는 걸 기억해주세요.

오늘은 간단하게 EC2 하나를 생성해보려 합니다.
아래와 같은 환경을 만들텐데요, 디폴트로, AWS에서는 VPC가 생성되어 있습니다.
아래 그림은 복잡하게 되어 있지만, 간단하게 생각하면, 172.31.0.0/16 대역의 가상 네트워크가 생성되어 있고, 기본 서브넷은 인터넷 통신이 가능하게 되어 있다는 점을 기억해주세요.

aws default vpc - Google 검색 2018-09-12 09-18-13.png

AWS 콘솔에 로그인 해주시고, EC2 콘솔에 접근해주세요

EC2 Management Console 2018-09-12 09-15-32.png

 

이제 파란색 버튼을 찾습니다.
EC2 Management Console 2018-09-12 09-20-17.png

첫번째로는, OS 선택 부분이 있습니다. 오늘은 아마존에서 기본으로 제공하는 Amazon Linux 를 선택합니다.
EC2 Management Console 2018-09-12 09-20-52.png

두번째로는, 인스턴스 사양[타입]을 선택합니다. 테스트이기 때문에, Freetier 사용이 가능한 t2.micro[cpu 1/ mem 2]로 생성하겠습니다.

EC2 Management Console 2018-09-12 09-22-11.png

상세하게 설정할 수 있지만, 위에서 설명한 바와같이 기본 VPC가 설정되어 있기 때문에, 바로 파란색 버튼을 눌러 생성 전단계로 넘어갑니다.


EC2 Management Console 2018-09-12 09-23-57.png

이제 생성하라는 명령을 내리기 위해, Launch 버튼을 누르는데요, 아래와 같이 키 값을 생성한 뒤, 키 값은 인스턴스에 접근하기위해 반드시 필요하기 때문에 다운로드 후 EC2를 만드는 명령을 내립니다.

EC2 Management Console 2018-09-12 09-24-52.png

끝입니다. 이제 인스턴스는 생성이 완료되었으며, Putty, Xshell 과 같은 SSH 접속 프로그램을 통해서 인스턴스에 접근 할 수 있게 되었습니다.

참고로, 디폴트로 생성할 경우, EC2의 SG[Security Group]은 22번 포트에 대해서 ALL OPEN[어디에서든 접근] 되어있습니다. 이는 OS의 취약점이 될 수 있기 때문에 유의하여 사용해주시기 바라며, 테스트 인스턴스는 테스트 후 삭제를 진행해주세요 !

그럼 이만 ~

 

EC2 ROOT EBS Downsize [xfs fs] 하기

준비물 : 원본 ROOT EBS / 복사 ROOT EBS / 빈깡통 EBS 1개
amazon linux 에서 작업하였습니다.

ROOT : xvda 마운트
복사 : sdg 마운트 [xvdg]
빈 EBS : sdf 마운트 [xvdf]

1. 빈 EBS 부터 마운트.

 

 

1. root@ip-172-31-22-199:~ (ssh) 2018-09-11 10-11-24

mkfs.xfs /dev/xvdf
sudo fdisk /dev/xvdf
n [for new partition]
p [for primary partition] [디폴트]
w [to write out and quit]

mkfs.xfs /dev/xvdf1

mkdir /mnt/newvol         ##마운트 경로 생성
mount /dev/xvdf1 /mnt/newvol  # # 마운트

 

 

2. 복사 EBS 마운트. && 기존 볼륨 snapshot -> EBS 부착

1. root@ip-172-31-22-199:~ (ssh) 2018-09-11 10-19-44.png

xfs_admin -L / /dev/xvdg1 ## 라벨링

mkdir /mnt/origin  ## 마운트경로 생성
mount -o ro -o nouuid /dev/xvdg1 /mnt/origin  ## uuid 없이 마운트  ## 잘안되면 dmesg확인

cd /mnt/origin
tar cSf – . | cat | (cd ../newvol/ && tar xSBf -)    ## xvdg ->> xvdf 로 복사하기

3. grub 설치하기 && uuid 변경해주기

blkid                     ## /dev/xvdf1 <UUID> 세팅 [new] 하기 ## /dev/xvda <UUID>[copied]
cd /mnt/newvol
export new=’xxxxxxxxxx’
export copied=’xxxxxxxxxxx’
sed -i -e “s/$copied/$new/g” etc/fstab
sed -i -e “s/$copied/$new/g” boot/grub2/grub.cfg
mount –bind /dev dev   ## 빼기 2개 bind
mount –bind /proc /proc
mount –bind /sys sys
chroot .

grub2-install /dev/xvdf

## Centos 는 selinux 확인 필요  /etc/sysconfig/selinux ->> disabled

이제 모두 완료되었습니다.
/dev/xvdf EBS 를빼고 /dev/xvda 혹은 /dev/sda1 으로 마운트한다.