Amazon API Gateway
개발자 안내서

태그를 사용하여 API Gateway 리소스에 대한 액세스 제어

AWS Identity and Access Management 정책의 조건은 API Gateway 리소스에 대한 권한을 지정하는 데 사용하는 구문의 일부입니다. IAM 정책 지정에 대한 자세한 내용은 IAM 권한을 사용하여 API에 대한 액세스 제어 단원을 참조하십시오. API Gateway에서 리소스에 태그가 있을 수 있고 일부 작업에 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음을 제어할 수 있습니다.

  • API Gateway 리소스에 이미 있는 태그를 기반으로 어떤 사용자가 해당 리소스에 대해 작업을 수행할 수 있는지 여부

  • 어떤 태그가 작업의 요청에서 전달될 수 있는지 여부

  • 요청에서 특정 태그 키를 사용할 수 있는지 여부

태그 기반 액세스 제어를 사용하면 API 레벨 제어를 보다 세부적으로 제어할 수 있을 뿐만 아니라 리소스 기반 액세스 제어보다 더 동적으로 제어할 수 있습니다. 작동 중인 리소스에 대한 태그(리소스 태그) 또는 요청에서 제공된 태그(요청 태그)를 기반으로 작업을 허용하거나 허용하지 않는 IAM 정책을 생성할 수 있습니다. 일반적으로 리소스 태그는 이미 존재하는 리소스에 대한 태그입니다. 요청 태그는 새 리소스를 생성할 때 사용되는 태그입니다.

태그 조건 키의 전체 구문 및 의미는 IAM 사용 설명서태그를 사용한 액세스 제어를 참조하십시오.

다음 예에서는 API Gateway 사용자에게 정책의 태그 조건을 지정하는 방법을 설명합니다.

예 1: 리소스 태그 기반 작업 제한

다음 정책 예에서는 사용자에게 모든 리소스에서 GET 작업을 수행할 수 있는 권한을 부여합니다. 또한 리소스에 값이 readWrite이고 이름이 iamrole인 태그가 있는 경우 정책이 사용자에게 리소스에서 모든 작업을 수행할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:GET", "Resource": "*" }, { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/iamrole": "readWrite" } } } ] }

예 2: 요청의 태그 기반 작업 제한

다음 정책 예에서는 다음을 지정합니다.

  • 사용자가 새 단계를 생성할 때 단계를 생성하는 요청에 이름이 stage인 태그가 있어야 합니다.

  • stage 태그의 값은 beta, gamma 또는 prod여야 합니다. 그렇지 않으면 단계를 생성하는 요청이 거부됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": "apigateway:POST", "Resource": "arn:aws:apigateway:*::/restapis/*/stages", "Condition": { "Null": { "aws:RequestTag/stage": "true" } } }, { "Effect": "Deny", "Action": "apigateway:POST", "Resource": "arn:aws:apigateway:*::/restapis/*/stages", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/stage": [ "beta", "gamma", "prod" ] } } } ] }

예 3: 리소스 태그 기반 작업 거부

다음 정책 예를 통해 사용자는 기본적으로 API Gateway 리소스에서 모든 작업을 수행할 수 있습니다. 리소스에 값이 prod이고 이름이 stage인 태그가 있는 경우 사용자가 리소스에서 수정 작업(PATCH, PUT, POST, DELETE)을 수행할 수 있는 권한이 거부됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:PATCH", "apigateway:PUT", "apigateway:POST", "apigateway:DELETE" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }

예 4: 리소스 태그 기반 작업 허용

다음 정책 예를 통해 사용자는 기본적으로 모든 API Gateway 리소스에서 모든 작업을 수행할 수 있습니다. 리소스에 값이 prod이고 이름이 environment인 태그가 있는 경우 사용자는 리소스에서 어떤 작업도 수행할 수 없습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "prod" } } } ] }