인증 정책을 사용하여 VPC Lattice 서비스에 대한 액세스를 제어합니다. - Amazon VPC Lattice

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인증 정책을 사용하여 VPC Lattice 서비스에 대한 액세스를 제어합니다.

VPC Lattice 인증 정책은 서비스 네트워크 또는 서비스에 연결하여 지정된 보안 주체가 서비스 그룹 또는 특정 서비스에 액세스할 수 있는지 여부를 제어하는 IAM 정책 문서입니다. 액세스를 제어하려는 각 서비스 네트워크 또는 서비스에 하나의 인증 정책을 연결할 수 있습니다.

인증 정책은 IAM 자격 증명 기반 정책과 다릅니다. IAM 자격 증명 기반 정책은 IAM 엔터티(사용자, 그룹 또는 역할)에 연결되어 이들 엔터티가 어떤 리소스에 대해 어떤 조치를 취할 수 있는지 정의합니다. 인증 정책은 서비스 및 서비스 네트워크에 연결됩니다. 승인이 성공하려면 인증 정책과 ID 기반 정책 모두에 명시적 허용 문이 있어야 합니다. 자세한 정보는 권한 부여의 작동 방식을 참조하세요.

AWS CLI 및 콘솔을 사용하여 서비스 및 서비스 네트워크의 인증 정책을 확인, 추가, 업데이트 또는 제거할 수 있습니다. 를 사용할 때는 명령이 AWS CLI사용자 프로필에 AWS 리전 구성된 프로필에서 실행된다는 점을 기억하십시오. 다른 리전에서 명령을 실행하려는 경우 프로필의 기본 리전을 변경하거나 명령에 --region 파라미터를 사용합니다.

인증 정책을 시작하려면 절차에 따라 서비스 네트워크에 적용되는 인증 정책을 만드세요. 다른 서비스에 적용하지 않으려는 보다 제한적인 권한을 원하는 경우 개별 서비스에 인증 정책을 설정할 수 있습니다.

다음 AWS CLI 작업은 인증 정책을 사용하여 서비스 네트워크에 대한 액세스를 관리하는 방법을 보여줍니다. 콘솔 사용 지침은 VPC Lattice의 서비스 네트워크 섹션을 참조하세요.

서비스 네트워크에 인증 정책 추가

이 섹션의 단계에 따라 다음을 수행하십시오. AWS CLI

  • IAM을 사용하여 서비스 네트워크에 대한 액세스 제어를 활성화합니다.

  • 서비스 네트워크에 인증 정책을 추가합니다. 인증 정책을 추가하지 않으면 모든 트래픽에 액세스 거부 오류가 발생합니다.

액세스 제어를 활성화하고 새 서비스 네트워크에 인증 정책을 추가하는 방법
  1. 인증 정책을 사용할 수 있도록 서비스 네트워크에 대한 액세스 제어를 활성화하려면 --auth-type 옵션과 값이 AWS_IAMcreate-service-network 명령을 사용합니다.

    aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. put-auth-policy 명령을 사용하여 인증 정책을 추가할 서비스 네트워크의 ID와 추가할 인증 정책을 지정합니다.

    예를 들어, 다음 명령을 사용하여 ID가 sn-0123456789abcdef0인 서비스 네트워크에 대한 인증 정책을 생성합니다.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    JSON을 사용하여 정책 정의를 생성합니다. 자세한 정보는 인증 정책의 공통 요소을 참조하세요.

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "policy": "policy", "state": "Active" }
액세스 제어를 활성화하고 기존 서비스 네트워크에 인증 정책을 추가하는 방법
  1. 인증 정책을 사용할 수 있도록 서비스 네트워크에 대한 액세스 제어를 활성화하려면 --auth-type 옵션과 값이 AWS_IAMupdate-service-network 명령을 사용합니다.

    aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. put-auth-policy 명령을 사용하여 인증 정책을 추가할 서비스 네트워크의 ID와 추가할 인증 정책을 지정합니다.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    JSON을 사용하여 정책 정의를 생성합니다. 자세한 정보는 인증 정책의 공통 요소을 참조하세요.

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "policy": "policy", "state": "Active" }

서비스 네트워크의 인증 유형 변경

서비스 네트워크에 대한 인증 정책을 비활성화하는 방법

--auth-type 옵션과 값이 NONEupdate-service-network 명령을 사용합니다.

aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE

나중에 인증 정책을 다시 활성화해야 하는 경우 --auth-type 옵션에 AWS_IAM이 지정된 상태로 이 명령을 실행하세요.

서비스 네트워크에서 인증 정책 제거

서비스 네트워크에서 인증 정책을 제거하는 방법

delete-auth-policy 명령을 사용합니다.

aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0

서비스 네트워크의 인증 유형을 NONE으로 변경하기 전에 인증 정책을 제거하면 요청이 실패합니다.

다음 AWS CLI 작업은 인증 정책을 사용하여 서비스에 대한 액세스를 관리하는 방법을 보여줍니다. 콘솔 사용 지침은 VPC Lattice 내 서비스 섹션을 참조하세요.

서비스에 인증 정책 추가

다음 단계에 AWS CLI 따라 다음을 수행하십시오.

  • IAM을 사용하여 서비스에 대한 액세스 제어를 활성화합니다.

  • 서비스에 인증 정책을 추가합니다. 인증 정책을 추가하지 않으면 모든 트래픽에 액세스 거부 오류가 발생합니다.

액세스 제어를 활성화하고 새 서비스에 인증 정책을 추가하는 방법
  1. 인증 정책을 사용할 수 있도록 서비스에 대한 액세스 제어를 활성화하려면 --auth-type 옵션과 값이 AWS_IAMcreate-service 명령을 사용합니다.

    aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "arn": "arn", "authType": "AWS_IAM", "dnsEntry": { ... }, "id": "svc-0123456789abcdef0", "name": "Name", "status": "CREATE_IN_PROGRESS" }
  2. put-auth-policy 명령을 사용하여 인증 정책을 추가할 서비스의 ID와 추가할 인증 정책을 지정합니다.

    예를 들어, 다음 명령을 사용하여 ID가 svc-0123456789abcdef0인 서비스에 대한 인증 정책을 생성합니다.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    JSON을 사용하여 정책 정의를 생성합니다. 자세한 정보는 인증 정책의 공통 요소을 참조하세요.

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "policy": "policy", "state": "Active" }
액세스 제어를 활성화하고 기존 서비스에 인증 정책을 추가하는 방법
  1. 인증 정책을 사용할 수 있도록 서비스에 대한 액세스 제어를 활성화하려면 --auth-type 옵션과 값이 AWS_IAMupdate-service 명령을 사용합니다.

    aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "arn": "arn", "authType": "AWS_IAM", "id": "svc-0123456789abcdef0", "name": "Name" }
  2. put-auth-policy 명령을 사용하여 인증 정책을 추가할 서비스의 ID와 추가할 인증 정책을 지정합니다.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    JSON을 사용하여 정책 정의를 생성합니다. 자세한 정보는 인증 정책의 공통 요소을 참조하세요.

    이 작업이 성공하면 다음과 비슷한 출력이 반환됩니다.

    { "policy": "policy", "state": "Active" }

서비스의 인증 유형 변경

서비스에 대한 인증 정책을 비활성화하는 방법

--auth-type 옵션과 값이 NONEupdate-service 명령을 사용합니다.

aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE

나중에 인증 정책을 다시 활성화해야 하는 경우 --auth-type 옵션에 AWS_IAM이 지정된 상태로 이 명령을 실행하세요.

서비스에서 인증 정책 제거

서비스에서 인증 정책을 제거하는 방법

delete-auth-policy 명령을 사용합니다.

aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0

서비스의 인증 유형을 NONE으로 변경하기 전에 인증 정책을 제거하면 요청이 실패합니다.

서비스에 대한 인증된 요청을 요구하는 인증 정책을 활성화하는 경우 해당 서비스에 대한 모든 요청에는 Signature Version 4(SigV4)를 사용하여 계산된 유효한 요청 서명이 포함되어야 합니다. 자세한 정보는 Amazon VPC 래티스에 대한 SigV4 인증 요청을 참조하세요.

인증 정책의 공통 요소

IAM 정책과 동일한 구문을 사용하여 VPC Lattice 인증 정책이 지정됩니다. 자세한 내용은 IAM 사용 설명서자격 증명 기반 정책 및 리소스 기반 정책을 참조하세요.

인증 정책에는 다음 요소가 포함됩니다.

  • 보안 주체 - 문에서의 작업 및 리소스에 액세스할 수 있는 사람 또는 애플리케이션입니다. 인증 정책에서 보안 주체는 이 권한의 수신자인 IAM 엔터티입니다. 보안 주체는 IAM 엔티티로 인증되어 서비스 네트워크의 서비스 경우와 같이 특정 리소스 또는 리소스 그룹에 요청할 수 있습니다.

    리소스 기반 정책에서 보안 주체를 지정해야 합니다. 보안 주체에는 계정, 사용자, 역할, 연동 사용자 또는 서비스가 포함될 수 있습니다. AWS 자세한 내용은 IAM 사용 설명서AWS JSON 정책 요소: 보안 주체를 참조하세요.

  • 결과 – 지정된 보안 주체가 특정 작업을 요청할 때의 결과입니다. 이는 Allow 또는 Deny일 수 있습니다. 기본적으로 IAM을 사용하여 서비스 또는 서비스 네트워크에 대한 액세스 제어를 활성화하면 보안 주체는 서비스 또는 서비스 네트워크에 요청할 권한이 없습니다.

  • 작업 — 권한을 부여하거나 거부하는 특정 API 작업입니다. VPC Lattice는 접두사를 사용하는 작업을 지원합니다. vpc-lattice-svcs 자세한 내용은 서비스 권한 부여 참조의 Amazon VPC Lattice 서비스가 정의하는 작업을 참조하십시오.

  • 리소스 – 작업의 영향을 받는 리소스입니다.

  • 조건: 조건은 선택 사항으로서 이를 사용하여 정책이 적용되는 시기를 제어할 수 있습니다. 자세한 내용은 서비스 권한 부여 참조Amazon VPC Lattice 서비스의 조건 키를 참조하세요.

인증 정책을 생성하고 관리할 때 IAM 정책 생성기를 사용하려고 할 수 있습니다.

요구 사항

JSON의 정책에는 줄 바꿈이나 빈 줄이 포함되어서는 안 됩니다.

인증 정책의 리소스 형식

다음 예와 같이 <serviceARN>/<path> 패턴이 있는 매칭 스키마를 사용하고 Resource 요소를 코딩하는 인증 정책을 생성하여 특정 리소스에 대한 액세스를 제한할 수 있습니다.

인증 정책의 리소스 예시
프로토콜
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

gRPC
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/GetRates"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/*"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/*"

<serviceARN>에는 다음의 Amazon 리소스 이름(ARN) 리소스 형식을 사용합니다.

arn:aws:vpc-lattice:region:account-id:service/service-id

예:

"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"

인증 정책에 사용할 수 있는 조건 키

인증 정책의 조건 요소에 있는 조건 키를 통해 액세스를 추가로 제어할 수 있습니다. 이러한 조건 키는 프로토콜과 요청이 Signature Version 4(SigV4)로 서명되었는지 아니면 익명으로 서명되었는지에 따라 평가용으로 제공됩니다. 조건 키는 대소문자를 구분합니다.

AWS 액세스를 제어하는 데 사용할 수 있는 글로벌 조건 키 (예: aws:PrincipalOrgID 및) 를 제공합니다aws:SourceIp. AWS 글로벌 조건 키 목록을 보려면 IAM 사용 설명서의AWS 글로벌 조건 컨텍스트 키를 참조하십시오.

다음 표에는 VPC 래티스 조건 키가 나와 있습니다. 자세한 내용은 서비스 권한 부여 참조Amazon VPC Lattice 서비스의 조건 키를 참조하세요.

인증 정책의 조건 키
조건 키 설명 익명의(인증되지 않은) 호출자가 사용할 수 있나요? gRPC 사용 가능
vpc-lattice-svcs:Port 요청이 있는 서비스 포트를 기준으로 액세스를 필터링합니다. 80
vpc-lattice-svcs:RequestMethod 요청의 방법을 기준으로 액세스를 필터링합니다. GET 항상 게시
vpc-lattice-svcs:RequestHeader/header-name: value 요청 헤더의 헤더 이름-값 쌍을 기준으로 액세스를 필터링합니다. content-type: application/json
vpc-lattice-svcs:RequestQueryString/key-name: value 요청 URL에 있는 쿼리 문자열 키-값 페어를 기준으로 액세스를 필터링합니다. quux: [corge, grault] 아니요
vpc-lattice-svcs:ServiceNetworkArn 요청을 수신하는 서비스의 서비스 네트워크에 대한 ARN을 기준으로 액세스를 필터링합니다. arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0
vpc-lattice-svcs:ServiceArn 요청을 수신하는 서비스의 ARN을 기준으로 액세스를 필터링합니다. arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0
vpc-lattice-svcs:SourceVpc 요청이 있는 VPC를 기준으로 액세스를 필터링합니다. vpc-1a2b3c4d
vpc-lattice-svcs:SourceVpcOwnerAccount 요청이 있는 VPC의 소유 계정을 기준으로 액세스를 필터링합니다. 123456789012

익명의(인증되지 않은) 보안 주체

익명 보안 주체는 서명 버전 4 (SigV4) 로 AWS 요청에 서명하지 않고 서비스 네트워크에 연결된 VPC 내에 있는 호출자입니다. 인증 정책에서 허용하는 경우 익명의 보안 주체는 서비스 네트워크의 서비스에 인증되지 않은 요청을 할 수 있습니다.

인증 정책 예시

다음은 인증된 보안 주체가 요청을 해야 하는 인증 정책의 예시입니다.

모든 예시는 us-west-2 리전을 사용하며 가상의 계정 ID를 포함합니다.

예 1: 특정 조직의 서비스 액세스 제한 AWS

다음 인증 정책 예시는 정책이 적용되는 서비스 네트워크의 모든 서비스에 액세스할 수 있는 권한을 인증된 모든 요청에 부여합니다. 단, 요청은 조건에 지정된 AWS 조직에 속한 주체로부터 시작되어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-123456example" ] } } } ] }
예 2: 특정 IAM 역할에 의한 서비스 액세스 제한

다음 인증 정책 예시는 Resource 요소에 지정된 서비스에 대해 HTTP GET 요청을 보내기 위해 IAM 역할 rates-client를 사용하는 모든 인증된 요청에 권한을 부여합니다. Resource 요소의 리소스는 정책이 연결된 서비스와 동일합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/rates-client" ] }, "Action": "vpc-lattice-svcs:Invoke", "Resource": [ "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*" ], "Condition": { "StringEquals": { "vpc-lattice-svcs:RequestMethod": "GET" } } } ] }
예 3: 특정 VPC의 인증된 보안 주체에 의한 서비스 액세스 제한

다음 인증 정책 예시는 VPC ID가 vpc-1a2b3c4d인 VPC의 보안 주체가 인증된 요청을 하는 경우만 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalType": "Anonymous" }, "StringEquals": { "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d" } } } ] }

권한 부여의 작동 방식

VPC Lattice 서비스가 요청을 받으면 AWS 시행 코드는 모든 관련 권한 정책을 함께 평가하여 요청을 승인할지 거부할지 결정합니다. 권한 부여 중에 요청 컨텍스트에 적용할 수 있는 모든 IAM 자격 증명 기반 정책 및 인증 정책을 평가합니다. 기본적으로 인증 유형이 AWS_IAM인 경우 모든 요청이 묵시적으로 거부됩니다. 모든 관련 정책의 명시적 허용은 기본 설정을 무시합니다.

승인에는 다음이 포함됩니다.

  • 모든 관련 IAM 자격 증명 기반 정책 및 인증 정책 수집

  • 정책 세트 결과 평가:

    • 요청자(예: IAM 사용자 또는 역할)에게 요청자가 속한 계정에서 작업을 수행할 수 있는 권한이 있는지 확인합니다. 명시적인 허용 명령문이 없는 경우 요청을 승인하지 않습니다. AWS

    • 서비스 네트워크의 인증 정책에서 해당 요청을 허용하는지 확인합니다. 인증 정책이 활성화되어 있지만 명시적인 허용 명령문이 없는 경우 요청을 승인하지 AWS 않습니다. 명시적 허용 문이 있거나 인증 유형이 NONE인 경우 코드는 계속 실행됩니다.

    • 서비스에 대한 인증 정책에서 해당 요청을 허용하는지 확인합니다. 인증 정책이 활성화되어 있지만 명시적인 허용 명령문이 없는 경우 요청을 AWS 승인하지 않습니다. 명시적 허용 문이 있거나 인증 유형이 NONE인 경우 적용 코드가 최종 Allow 결정을 반환합니다.

    • 어떠한 정책의 명시적 거부도 허용을 무시합니다.

다이어그램은 권한 부여 워크플로를 보여줍니다. 요청을 하면 관련 정책은 해당 서비스에 대한 요청 액세스를 허용하거나 거부합니다.

권한 부여 워크플로