기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EC2의 보안 그룹 작업
사전 조건
시작하기 전에 시작하기를 AWS SDK for C++ 읽는 것이 좋습니다.
예제 코드를 다운로드하고에 설명된 대로 솔루션을 빌드합니다코드 예제 시작하기.
예제를 실행하려면 코드에서 요청을 만드는 데 사용하는 사용자 프로필에 AWS (서비스 및 작업에 대한) 적절한 권한이 있어야 합니다. 자세한 내용은 자격 AWS 증명 제공을 참조하세요.
보안 그룹 생성
보안 그룹을 생성하려면 키 이름이 포함된 CreateSecurityGroupRequest를 사용하여 EC2Client의 CreateSecurityGroup
함수를 호출합니다.
포함
#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/CreateSecurityGroupRequest.h>
코드
Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::CreateSecurityGroupRequest request; request.SetGroupName(groupName); request.SetDescription(description); request.SetVpcId(vpcID); const Aws::EC2::Model::CreateSecurityGroupOutcome outcome = ec2Client.CreateSecurityGroup(request); if (!outcome.IsSuccess()) { std::cerr << "Failed to create security group:" << outcome.GetError().GetMessage() << std::endl; return false; } std::cout << "Successfully created security group named " << groupName << std::endl;
전체 예제
보안 그룹 구성
보안 그룹은 Amazon EC2 인스턴스에 대한 인바운드(수신) 및 아웃바운드(송신) 트래픽을 모두 제어할 수 있습니다.
보안 그룹에 수신 규칙을 추가하려면 EC2Client의 AuthorizeSecurityGroupIngress
함수를 사용하여 보안 그룹의 이름과 AuthorizeSecurityGroupIngressRequest 객체 내에 할당하려는 액세스 규칙(IpPermission)을 제공합니다. 다음 예제에서는 IP 권한을 보안 그룹에 추가하는 방법을 보여줍니다.
포함
#include <aws/ec2/model/AuthorizeSecurityGroupIngressRequest.h>
코드
Aws::EC2::Model::AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest; authorizeSecurityGroupIngressRequest.SetGroupId(groupID);
Aws::String ingressIPRange = "203.0.113.0/24"; // Configure this for your allowed IP range. Aws::EC2::Model::IpRange ip_range; ip_range.SetCidrIp(ingressIPRange); Aws::EC2::Model::IpPermission permission1; permission1.SetIpProtocol("tcp"); permission1.SetToPort(80); permission1.SetFromPort(80); permission1.AddIpRanges(ip_range); authorize_request.AddIpPermissions(permission1); Aws::EC2::Model::IpPermission permission2; permission2.SetIpProtocol("tcp"); permission2.SetToPort(22); permission2.SetFromPort(22); permission2.AddIpRanges(ip_range); authorize_request.AddIpPermissions(permission2);
Aws::EC2::Model::AuthorizeSecurityGroupIngressOutcome authorizeSecurityGroupIngressOutcome = ec2Client.AuthorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest); if (authorizeSecurityGroupIngressOutcome.IsSuccess()) { std::cout << "Successfully authorized security group ingress." << std::endl; } else { std::cerr << "Error authorizing security group ingress: " << authorizeSecurityGroupIngressOutcome.GetError().GetMessage() << std::endl; }
보안 그룹에 송신 규칙을 추가하려면 AuthorizeSecurityGroupEgressRequest의 유사한 데이터를 EC2Client의 AuthorizeSecurityGroupEgress
함수에 제공합니다.
전체 예제
보안 그룹 설명
보안 그룹을 설명하거나 보안 그룹에 대한 정보를 가져오려면 DescribeSecurityGroupsRequest를 사용하여 EC2Client의 DescribeSecurityGroups
함수를 호출합니다.
GetSecurityGroups
함수를 호출하여 보안 그룹 목록에 액세스하는 데 사용할 수 있는 DescribeSecurityGroupsResponse가 결과 객체에 표시됩니다. 그러면 SecurityGroup 객체 목록이 반환됩니다.
포함
#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/DescribeSecurityGroupsRequest.h> #include <aws/ec2/model/DescribeSecurityGroupsResponse.h> #include <iomanip> #include <iostream>
코드
Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::DescribeSecurityGroupsRequest request; if (!groupID.empty()) { request.AddGroupIds(groupID); } Aws::String nextToken; do { if (!nextToken.empty()) { request.SetNextToken(nextToken); } Aws::EC2::Model::DescribeSecurityGroupsOutcome outcome = ec2Client.DescribeSecurityGroups(request); if (outcome.IsSuccess()) { std::cout << std::left << std::setw(32) << "Name" << std::setw(30) << "GroupId" << std::setw(30) << "VpcId" << std::setw(64) << "Description" << std::endl; const std::vector<Aws::EC2::Model::SecurityGroup> &securityGroups = outcome.GetResult().GetSecurityGroups(); for (const auto &securityGroup: securityGroups) { std::cout << std::left << std::setw(32) << securityGroup.GetGroupName() << std::setw(30) << securityGroup.GetGroupId() << std::setw(30) << securityGroup.GetVpcId() << std::setw(64) << securityGroup.GetDescription() << std::endl; } } else { std::cerr << "Failed to describe security groups:" << outcome.GetError().GetMessage() << std::endl; return false; } nextToken = outcome.GetResult().GetNextToken(); } while (!nextToken.empty());
전체 예제
보안 그룹 삭제
보안 그룹을 삭제하려면 EC2Client의 DeleteSecurityGroup
함수를 호출하여 삭제할 보안 그룹의 ID가 포함된 DeleteSecurityGroupRequest를 전달합니다.
포함
#include <aws/ec2/EC2Client.h> #include <aws/ec2/model/DeleteSecurityGroupRequest.h> #include <iostream>
코드
Aws::EC2::EC2Client ec2Client(clientConfiguration); Aws::EC2::Model::DeleteSecurityGroupRequest request; request.SetGroupId(securityGroupID); Aws::EC2::Model::DeleteSecurityGroupOutcome outcome = ec2Client.DeleteSecurityGroup(request); if (!outcome.IsSuccess()) { std::cerr << "Failed to delete security group " << securityGroupID << ":" << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Successfully deleted security group " << securityGroupID << std::endl; }
전체 예제
추가 정보
-
Amazon EC2 사용 설명서의 Amazon EC2 보안 그룹 Amazon EC2
-
Amazon EC2 사용 설명서의 Linux 인스턴스에 대한 인바운드 트래픽 권한 부여
-
Amazon EC2 API 참조의 CreateSecurityGroup
-
Amazon EC2 API 참조의 DescribeSecurityGroups
-
Amazon EC2 API 참조의 DeleteSecurityGroup
-
Amazon EC2 API 참조의 AuthorizeSecurityGroupIngress