일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Kafka
- Packet
- kubernetes
- kubeadm
- docker
- Operating System
- Python
- OS
- jvm
- log
- JavaScript
- MAC address
- AWS
- java
- PostgreSQL
- CVAT
- Vision
- zookeeper
- Network
- grafana
- CSV
- airflow
- tcp
- ip
- EC2
- aws s3
- helm
- Trino
- Spring
- kubectl
- Today
- Total
JUST WRITE
credentials 설정 안해도 되네?! - AWS EC2 IAM 연결 본문
credentials 설정 안해도 되네?!
Terraform을 통해서 AWS EC2를 생성하고 세팅하려면 권한이 필요합니다.
해당 권한을 AWS IAM을 통해서 생성하고 EC2에 aws configure를 통해서 설정하였습니다.
그러면 credetials 파일이 생성되어 해당 파일의 권한 정보로 EC2를 생성하였습니다.
# 1. aws command
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
# 2. credentials 파일 생성
$ vi ~/.aws/credentials
[default]
aws_access_key_id = ${access-key}
aws_secret_access_key = ${secret-key}
아래 포스팅에서 자세한 사항을 확인할 수 있습니다.
다만 이 방식은 access-key와 secret-key를 서버에 노출시킨다는 단점이 있습니다.
credentials 파일을 생성하지 않고 바로 EC2에 해당 권한을 줄 수 있습니다.
이번 포스팅에서 이 방식을 정리하도록 하겠습니다.
IAM 역할 생성 및 연결
먼저 EC2 관련 권한이 있는 역할을 생성합니다.
AmazonEC2FullAccess 권한을 가진 역할을 생성하였습니다.
먼저 생성해두었던 credentials 파일을 삭제하고 aws cli를 실행해 보았습니다.
EC2 Instance 리스트를 조회하였지만 credetials을 설정하라는 메시지만 나옵니다.
$ rm ~/.aws/credentials
$ aws ec2 describe-instances
Unable to locate credentials. You can configure credentials by running "aws configure".
이제 생성한 IAM 역할을 해당 EC2에 연결해 보았습니다.
AWS Console에서 쉽게 역할을 수정할 수 있습니다.
해당 EC2를 선택하고 작업에서 IAM 역할 수정을 선택합니다.
생성한 역할을 선택 후 업데이트 합니다.
역할을 추가하고 EC2에서 AWS cli로 Instance list가 나오는 것을 확인할 수 있습니다.
$ aws ec2 describe-instances
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0425f132103cb3ed8",
"InstanceId": "i-067ef0dd62bdb257c",
"InstanceType": "t2.micro",
"KeyName": "coxspace_dev",
"LaunchTime": "2023-08-03T01:23:11+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "ap-northeast-2c",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-172-31-46-225.ap-northeast-2.compute.internal",
"PrivateIpAddress": "172.31.46.225",
"ProductCodes": [],
"PublicDnsName": "ec2-54-180-24-81.ap-northeast-2.compute.amazonaws.com",
"PublicIpAddress": "54.180.24.81",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-f06d9fbf",
"VpcId": "vpc-3c54c857",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2023-07-04T01:10:29+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-03d2a20e74a110b89"
}
}
],
"ClientToken": "088b10cb-1952-4b8a-9aab-386046293f29",
서버에 access-key와 secret-key를 남기지 않아서 보안적으로 유리합니다.
EC2에서 AWS 컨트롤하려면 해당 방법을 통해 컨트롤하는 것을 추천합니다.
'Cloud' 카테고리의 다른 글
Client VPN 구성 - Private Subnet 외부에서 접근 (0) | 2024.02.27 |
---|---|
빠르게 더 빠르게!!! - AWS Placement Group (0) | 2023.09.13 |
늘렸는데 늘어나지 않았습니다?! - AWS EBS 용량 늘리기 (0) | 2023.08.01 |
[AWS] 비용 절감을 위한 EC2 Scheduling (0) | 2023.03.17 |
따릉이 대여소 정보 Dashboard 구성(5) - Parquet 형식으로 Data 변환 (0) | 2022.03.02 |