일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dns
- ALB
- NaCl
- Subnet
- terraform
- ncp
- Athena
- Storage
- CLI
- lambda
- AD
- FSX
- 네이버 클라우드 플랫폼
- VPC
- security group
- S3
- Python
- storage gateway
- Jenkins
- EC2
- Linux
- 테라폼
- Windows
- 윈도우
- 도메인
- RDS
- CloudFront
- Dedup
- AWS
- route table
Archives
- Today
- Total
끄적이는 보송
[Python] Python을 이용해 AWS Security Group 생성하기 본문
반응형
Security Group을 생성하고 많은 양의 Rule을 반복적으로 입력하는 일은 콘솔 환경에서 꾀나 고통스러운 일이다. 실수는 덤이다. 그래서 Python 코드로 한번 짜봤다.
하나의 룰에 여러 Source를 입력할 수도, Security Group ID가 source 인 경우도, 포트 번호가 범위인 경우 등등을 고려해 보았다.
import boto3
# EC2 Client
ec2 = boto3.client('ec2', region_name='<your_region>')
# VPC Client
vpc_id = '<vpc_id>'
# Create a new Security Group
response = ec2.create_security_group(
Description = 'security group description',
GroupName = 'MySecurityGroup',
VpcId = vpc_id
)
# Get the ID of the newly created Security Group
security_group_id = response['GroupId']
# Add inbound rules to the Security Group
data = ec2.authorize_security_group_ingress(
GroupId=security_group_id,
IpPermissions=[
{
# 여러 CIDR 대역을 하나의 RULE에 지정
'IpProtocol': 'tcp',
'FromPort': 80,
'ToPort': 80,
'IpRanges': [
{'CidrIp': '192.168.0.0/24', 'Description': 'site1'},
{'CidrIp': '192.168.20.0/24', 'Description': 'site2'},
{'CidrIp': '192.168.30.0/24', 'Description': 'site3'}
],
# Source가 IP주소가 아닌 Security Group은 아래와 같이 지정
'UserIdGroupPairs': [
{'GroupId' : '<security_group_id>', 'VpcId' : vpc_id, 'Description': 'example_server'}
]
},
{
'IpProtocol': 'tcp',
'FromPort': 443,
'ToPort': 443,
'IpRanges': [
{'CidrIp': '192.168.0.0/24', 'Description': 'site1'},
{'CidrIp': '192.168.20.0/24', 'Description': 'site2'},
{'CidrIp': '192.168.30.0/24', 'Description': 'site3'}
],
'UserIdGroupPairs': [
{'GroupId' : '<security_group_id>', 'VpcId' : vpc_id, 'Description': 'example_server'}
]
},
{
# 포트 범위 지정
'IpProtocol': 'tcp',
'FromPort': 8080,
'ToPort': 8089,
'IpRanges': [
{'CidrIp': '192.168.0.0/24', 'Description': 'site1'},
{'CidrIp': '192.168.20.0/24', 'Description': 'site2'},
{'CidrIp': '192.168.30.0/24', 'Description': 'site3'}
],
'UserIdGroupPairs': [
{'GroupId' : '<security_group_id>', 'VpcId' : vpc_id, 'Description': 'example_server'}
]
}
]
)
print(f'Security Group created with ID: {security_group_id}')
반응형
'STUDY > 스크립트&코드' 카테고리의 다른 글
[Python] EC2 Instance 리스트 조회하여 필요한 정보 CSV로 추출하기 (0) | 2023.02.15 |
---|---|
VIM에 스크립트 복사 붙여넣기가 잘 안될 때 (1) | 2023.02.13 |
[AWS] 모든 RDS의 FreeStorageSpace를 불러오는 쉘 스크립트 작성해보기 (0) | 2023.02.13 |
Comments