VPC 엔드포인트 및 AWS PRIVATELINK
8164 단어 loadbalanceprivatelinknetworkaws
VPC 엔드포인트 및 AWS PRIVATELINK
VPC 엔드포인트를 사용하면 VPC를 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있습니다. VPC 내의 리소스는 VPC 엔드포인트를 사용할 때 VPC 외부의 리소스와 통신하기 위해 퍼블릭 IP 주소가 필요하지 않습니다. Amazon Virtual Private Cloud(Amazon VPC)와 서비스 간의 트래픽은 Amazon 네트워크 외부로 라우팅되지 않습니다.
VPC 종단점은 가장 중요한 보안 제품이고 그 다음이 연결 제품입니다. VPC 엔드포인트는 VPC와 다른 서비스 간의 트래픽이 Amazon 네트워크를 벗어나는 것을 방지합니다.
VPC와 대중이 액세스할 수 있는 서비스 엔드포인트 간의 연결을 방지하는 엄격한 규정 준수 요구 사항이 있을 수 있습니다. 이 경우 VPC 종단점은 다른 방법으로는 사용할 수 없는 VPC에서 AWS 서비스에 액세스할 수 있는 방법을 제공합니다.
인터넷 게이트웨이, 가상 프라이빗 게이트웨이, NAT(네트워크 주소 변환) 장치, VPN(가상 프라이빗 네트워크) 연결 또는 Direct Connect 연결은 VPC 엔드포인트에 필요하지 않습니다. VPC 엔드포인트를 통해 제공되는 서비스에 연결하기 위해 VPC의 인스턴스에는 퍼블릭 IP 주소가 필요하지 않습니다.
다음은 다양한 유형의 VPC 엔드포인트입니다.
게이트웨이 VPC 엔드포인트
게이트웨이 VPC 엔드포인트는 접두사 목록을 사용하여 VPC 라우팅 테이블의 특정 IP 경로를 대상으로 합니다. 이는 Amazon DynamoDB 또는 Amazon Simple Storage Service(S3) 트래픽에 사용됩니다.
VPC 엔드포인트와 통신하기 위해 VPC의 인스턴스에는 퍼블릭 IP 주소가 필요하지 않습니다. 이는 소비자 VPC 내의 인터페이스 엔드포인트가 로컬 IP 주소를 사용하기 때문입니다. 게이트웨이 엔드포인트는 VPC의 라우팅 테이블에 있는 접두사 목록을 통해 VPC 내에서 액세스할 수 있는 대상입니다.
인터페이스 끝점
AWS PrivateLink에서 제공하는 인터페이스 엔드포인트는 서브넷의 IP 주소 범위에 있는 프라이빗 IP 주소가 있는 탄력적 네트워크 인터페이스입니다. 지원되는 AWS 서비스 또는 VPC 엔드포인트 서비스로 향하는 트래픽의 게이트웨이 역할을 합니다.
게이트웨이 로드밸런서 엔드포인트
Gateway Load Balancer 끝점은 서브넷의 IP 주소 범위에 있는 개인 IP 주소가 있는 탄력적 네트워크 인터페이스입니다. 이 유형의 엔드포인트는 트래픽을 가로채 게이트웨이 로드 밸런서를 사용하여 구성한 서비스로 라우팅하기 위한 진입점 역할을 합니다.
AWS PrivateLink는 VPC와 AWS 서비스 간에 보안 연결을 설정합니다. 이 AWS 서비스는 퍼블릭 인터넷에 대한 트래픽 노출을 피하면서 AWS 네트워크 내에서 안전한 사용을 보장합니다.
AWS PrivateLink 이전에는 단일 VPC 내의 서비스가 두 가지 방법으로 다른 VPC에 연결되었습니다.
1) VPC의 인터넷 게이트웨이를 사용하는 공인 IP 주소
2) VPC 피어링을 사용하는 사설 IP 주소
AWS PrivateLink를 통해 서비스는 서비스 공급자의 VPC와 서비스 소비자의 VPC 간에 TCP(Transmission Control Protocol) 연결을 설정합니다. 이는 안전하고 확장 가능한 솔루션을 제공합니다.
다음 예제는 AWS CloudFormation을 사용하여 Gateway Load Balancer ARN을 사용하여 VPC 엔드포인트 서비스를 생성하는 방법을 보여줍니다. 또한 서비스 이름을 출력하기 위해 사용자 지정 리소스를 생성합니다.
AWSTemplateFormatVersion: "2010-09-09"
Description: This template creates Amazon VPC Endpoint Service.
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Endpoint Service Configuration
Parameters:
- ElbArn
- ConnectionAcceptance
- Label:
default: Endpoint Service Permissions
Parameters:
- AwsAccountToWhitelist
ParameterLabels:
ElbArn:
default: >-
ELB Amazon Resource Names (ARNs)for your service.
ConnectionAcceptance:
default: >-
Indicate whether requests from service consumers to create an
endpoint to your service must be accepted.
AwsAccountToWhitelist:
default: >-
The Amazon Resource Names (ARN) of one or more principals (IAM users,
IAM roles, and AWS accounts). Permissions are granted to the
principals in this list.
Parameters:
ElbArn:
Description: >-
Enter Elastic load balancer ARN for your service. Network and Gateway
Load Balancer are the two supported types.
Type: String
ConstraintDescription: Must be a valid ELB ARN
ConnectionAcceptance:
Description: >-
Acceptance required for endpoint connection or not. Select true or
false to either acceptance required or acceptance not required
default is set to false: acceptance not required
Default: "false"
AllowedValues: ["true", "false"]
Type: String
ConstraintDescription: Must be true or false
AwsAccountToWhitelist:
Description: >-
Enter ARN of one or more prinicapls: IAM user, IAM roles and AWS accounts.
To grant permissions to all principals, specify an asterisk (*).
Type: String
ConstraintDescription: Must be a valid AWS ARN of one or more principals
Resources:
VpcEndpointService:
Type: AWS::EC2::VPCEndpointService
Properties:
GatewayLoadBalancerArns:
- !Ref ElbArn
AcceptanceRequired: !Ref ConnectionAcceptance
VpcEndpointServicePermissions:
Type: AWS::EC2::VPCEndpointServicePermissions
Properties:
AllowedPrincipals:
- !Ref AwsAccountToWhitelist
ServiceId: !Ref VpcEndpointService
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action:
- sts:AssumeRole
Path: /
Policies:
- PolicyName: root
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
Resource: arn:aws:logs:*:*:*
- Effect: Allow
Action:
- ec2:DescribeVpcEndpointServiceConfigurations
- ec2:DescribeVpcEndpointServicePermissions
- ec2:DescribeVpcEndpointServices
Resource: "*"
DescribeVpceService:
Type: AWS::Lambda::Function
Properties:
Handler: "index.handler"
Role: !GetAtt
- LambdaExecutionRole
- Arn
Code:
ZipFile: |
import boto3
import cfnresponse
import json
import logging
def handler(event, context):
logger = logging.getLogger()
logger.setLevel(logging.INFO)
responseData = {}
responseStatus = cfnresponse.FAILED
logger.info('Received event: {}'.format(json.dumps(event)))
if event["RequestType"] == "Delete":
responseStatus = cfnresponse.SUCCESS
cfnresponse.send(event, context, responseStatus, responseData)
if event["RequestType"] == "Create":
try:
VpceServiceId = event["ResourceProperties"]["Input"]
except Exception as e:
logger.info('VPC Endpoint Service Id retrival failure: {}'.format(e))
try:
ec2 = boto3.client('ec2')
except Exception as e:
logger.info('boto3.client failure: {}'.format(e))
try:
response = ec2.describe_vpc_endpoint_service_configurations(
Filters=[
{
'Name': 'service-id',
'Values': [VpceServiceId]
}
]
)
except Exception as e:
logger.info('ec2.describe_vpc_endpoint_service_configurations failure: {}'.format(e))
ServiceName = response['ServiceConfigurations'][0]['ServiceName']
responseData['Data'] = ServiceName
responseStatus = cfnresponse.SUCCESS
cfnresponse.send(event, context, responseStatus, responseData)
Runtime: python3.7
Timeout: 30
VpceServiceName:
DependsOn: VpcEndpointService
Type: Custom::DescribeVpcEndpointServiceConfigurations
Properties:
ServiceToken: !GetAtt DescribeVpceService.Arn
Input: !Ref VpcEndpointService
Outputs:
SecurityVpcEndpointServiceId:
Description: Security VPC Endpoint Service ID
Value: !Ref VpcEndpointService
SecurityVpcEndpointServiceName:
Description: Security VPC Endpoint Service Name. Required to create VPC endpoint
Value: !GetAtt VpceServiceName.Data
Reference
이 문제에 관하여(VPC 엔드포인트 및 AWS PRIVATELINK), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/selvapal/vpc-endpoints-and-aws-privatelink-43ci텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)