AWS 38

AWS Roles(역할) aws_iam_role의 assume_role_policy 사용법

위에서 jsonencode 블록 내의 파라미터는 IAM 역할(roles)을 생성할 때 Lambda 함수가 이 역할을 "가정(Assume)"할 수 있도록 설정하는 Assume Role Policy 이다. 이 정책은 AWS 리소스가 역할을 가정(assume)할 수 있는 권한을 정의하는 역할을 한다.resource "aws_iam_role" "lambda_exec_role" { name = "lambda_exec_role" assume_role_policy = jsonencode({ Version = "2012-10-17", Statement = [{ Effect = "Allow", Principal = { Service = "lambda.amazonaws.com"..

AWS 2024.10.23

AWS IAM 관리형 정책 (Managed Policies)

AWS에서는 다양한 관리형 정책(Managed Policies)을 제공하여 IAM 사용자, 그룹, 역할에 손쉽게 권한을 부여할 수 있다. AWS 관리형 정책은 서비스와 관련된 여러 작업을 수행할 수 있는 권한을 미리 정의한 것이다. 여기에는 특정 서비스에 대해 읽기, 쓰기, 관리 등의 권한이 포함되어 있다. 아래는 AWS에서 자주 사용되는 관리형 정책들과 그 설명이다1. AmazonS3FullAccessARN: arn:aws:iam::aws:policy/AmazonS3FullAccess설명: 이 정책은 사용자 또는 리소스에 S3 서비스 전체에 대한 읽기/쓰기 권한을 부여한다. 즉, S3 버킷을 생성하고 삭제할 수 있으며, 모든 객체에 대한 읽기 및 쓰기 작업을 수행할 수 있다.2. AmazonS3Read..

AWS 2024.10.23

AWS IAM(Identity and Access Management) 사용법

AWS IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스 제어를 관리하는 서비스이다. AWS의 다양한 리소스와 서비스를 사용할 때 IAM을 사용하여 접근 권한을 설정하고 관리한다. 각 리소스는 IAM 권한을 통해 AWS 리소스에 액세스할 수 있고, 사용자, 애플리케이션, 서비스가 안전하게 AWS 리소스에 접근할 수 있도록 역할을 정의한다.IAM이 필요한 경우IAM은 AWS 리소스에 대한 접근 권한이 필요할 때 사용됩니다. 일반적으로 다음과 같은 경우 IAM 설정이 필요하다.AWS 콘솔에 사용자로 로그인하여 리소스를 관리하려는 경우애플리케이션이 특정 AWS 리소스(S3, DynamoDB, Lambda 등)에 접근해야 할 경우AWS 서비스(예: Lambda, EC..

AWS 2024.10.23

AWS Lambda IaC 적용 방법

Lambda 리소스 구성 요소 및 사용 여부Lambda 함수 구성에서 다양한 리소스가 있다.애플리케이션 (Application): Lambda 함수는 기본적으로 AWS Lambda에 대한 함수 단위로 관리되지만, 여러 함수나 관련 리소스를 한데 모으는 개념으로 애플리케이션을 구성할 수 있다.필수 여부: 선택 사항 (기본적으로 Lambda 함수 단위로도 충분히 운영 가능)리소스명: AWS SAM(Application)을 사용하면 aws_serverless_application으로 정의함수 (Function): Lambda의 핵심 리소스로, 코드가 실행되는 역할필수 여부: 필수리소스명: aws_lambda_function필수 파라미터:function_name: 함수의 이름role: Lambda가 실행될 때 ..

AWS 2024.10.23

AWS security_groups 멀티 지정

security_groups = [aws_security_group.ec2_sg.id] 표현에서 security_groups는 하나 이상의 보안 그룹을 적용하기 위해 리스트(배열) 형식으로 값을 입력. 이 리스트 안에 여러 보안 그룹의 ID를 넣을 수 있고, 각 보안 그룹은 AWS에서 정의된 aws_security_group 리소스를 참조하게 됨  security_groups = [aws_security_group.ec2_sg.id]에서 security_groups는 여러 개의 보안 그룹을 적용할 수 있도록 리스트로 값을 받는다. aws_security_group.ec2_sg.id는 하나의 보안 그룹을 참조하는 것으로, 여기서 해당 보안 그룹의 ID를 가져온다.리스트에 여러 개의 보안 그룹 추가: 보안 ..

AWS 2024.10.23

AWS Aurora Serverless DB 생성, Lambda로 이벤트 전송 IaC

Terraform을 사용하여 Aurora Serverless DB, 테이블, 그리고 Lambda 함수를 설정하고, Aurora의 데이터 입력 이벤트가 Lambda를 호출하도록 트리거를 설정provider "aws" { region = "ap-northeast-2"}# Aurora Serverless Cluster 생성resource "aws_rds_cluster" "aurora" { cluster_identifier = "aurora-serverless-cluster" engine = "aurora-mysql" engine_version = "5.7.mysql_aurora.2.07.1" database_name = "myd..

AWS 2024.10.23

AWS EC2, Lambda, EFS 생성 및 EFS 접근 IaC

Terraform을 사용한 EFS 사용 설정provider "aws" { region = "ap-northeast-2"}# EFS 파일 시스템 생성resource "aws_efs_file_system" "efs" { encrypted = true # 파일 시스템 암호화 옵션 lifecycle_policy { transition_to_ia = "AFTER_30_DAYS" # 인액티브 파일들을 Infrequent Access로 이동 } tags = { Name = "MyEFS" }}# EFS 마운트 타겟 생성 (EC2에서 접근할 수 있도록)resource "aws_efs_mount_target" "efs_mount" { count = length(var.subnet..

AWS 2024.10.23

AWS DirectConnect와 Transit G/W 연결해서 내부 통신 IaC

AWS Direct Connect와 Transit Gateway를 연결하여 On-Premise 장비에서 AWS 내의 Lambda를 호출할 수 있도록 하는 구조를 Terraform 코드1) IP 주소로 Lambda 호출2) DNS 이름으로 Lambda 호출 설계 개요Direct Connect: AWS와 On-Premise 간에 전용 네트워크 연결을 설정Transit Gateway: Direct Connect와 VPC 간의 라우팅을 관리Lambda: 호출 대상이 되는 Lambda 함수는 VPC 내에 배포되며, VPC를 통해 On-Premise에서 접근 가능Private Subnet: Lambda는 Private Subnet에 배치되어 외부 인터넷 없이 내부 네트워크에서 접근DNS 설정 (옵션): Lambda..

AWS 2024.10.22

AWS S3와 CloudFront 연동 IaC

S3 버킷: 파일을 저장할 곳CloudFront 배포: S3 파일을 전 세계적으로 배포할 Content Delivery Network(CDN)S3 버킷 정책: CloudFront가 S3 버킷에 접근할 수 있도록 허용# AWS Provider 설정provider "aws" { region = "ap-northeast-2" # 사용할 리전 (CloudFront는 글로벌이므로 S3 리전만 지정)}# 1. S3 버킷 생성resource "aws_s3_bucket" "my_bucket" { bucket = "my-unique-bucket-name" # S3 버킷 이름. 고유해야 함. # 버킷에 대해 기본적인 설정 (예: 웹 호스팅, 버전 관리 등) acl = "private" # CloudF..

AWS 2024.10.22

AWS EFS 리소스

EFS파일 시스템액세스 포인트 1. EFS 파일 시스템 (EFS File System)리소스 이름: aws_efs_file_system필수 입력 파라미터:creation_token: 파일 시스템을 생성할 때 고유하게 식별하는 토큰.tags: 태그 지정은 필수는 아니지만, 리소스를 잘 관리하기 위해 추천됩니다.옵션 입력 파라미터:encrypted: 파일 시스템의 데이터가 암호화될지 여부. 기본값은 false.performance_mode: 성능 모드를 설정합니다. 기본값은 generalPurpose이고, maxIO로 설정할 수 있습니다.throughput_mode: 파일 시스템의 처리량을 관리하는 방식. 기본값은 bursting, 다른 옵션은 provisioned.provisioned_throughput_..

AWS 2024.10.22