AWS Lambda
개발자 가이드

Lambda 작업의 리소스와 조건

IAM 정책에 리소스와 조건을 지정하여 사용자 권한의 범위를 제한할 수 있습니다. 각각의 API 작업은 해당 작업의 동작에 따라 다양한 조합의 리소스와 조건을 지원합니다.

각 IAM 정책 구문은 리소스에 대해 수행되는 작업에 대한 권한을 부여합니다. 지명된 리소스에서 이루어지는 작업이 아니거나 모든 리소스에 대해 그 작업을 수행할 수 있도록 권한을 부여하는 경우, 정책에서 해당 리소스의 값은 와일드카드(*)가 됩니다. 대부분의 API 작업에서는 리소스의 Amazon 리소스 이름(ARN) 또는 복수의 리소스에 맞는 ARN 패턴을 지정함으로써 사용자 수정이 가능한 리소스를 제한할 수 있습니다.

리소스별 권한을 제한하려면 ARN으로 리소스를 지정하십시오.

Lambda 리소스 ARN 형식

  • 함수 – arn:aws:lambda:us-west-2:123456789012:function:my-function

  • 함수 버전 – arn:aws:lambda:us-west-2:123456789012:function:my-function:1

  • 함수 별칭 – arn:aws:lambda:us-west-2:123456789012:function:my-function:TEST

  • 이벤트 소스 매핑 – arn:aws:lambda:us-west-2:123456789012:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47

  • 계층 – arn:aws:lambda:us-west-2:123456789012:layer:my-layer

  • 계층 버전 – arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1

예를 들어 다음 정책은 123456789012 계정의 사용자가 미국 서부(오레곤) 리전에서 my-function 함수를 호출할 수 있도록 허용합니다.

예 Lambda 정책 호출

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }

이것은 작업 ID(lambda:InvokeFunction)가 API 작업(호출)과 다른 특수한 경우입니다. 다른 작업의 경우, 작업 이름 앞에 lambda:를 붙인 것이 작업 ID입니다.

조건이란 허용되는 작업인지 여부를 판단하기 위해 로직을 추가로 적용하는 선택적 정책 요소를 말합니다. 모든 작업에서 지원되는 일반 조건 외에, Lambda에는 일부 작업에서 추가 파라미터 값을 제한하는 데 사용할 수 있는 조건 유형도 정의되어 있습니다.

예를 들어, lambda:Principal 조건으로는 사용자가 함수의 리소스 기반 정책에 대한 호출 액세스 권한을 부여할 수 있는 서비스 또는 계정을 제한합니다. 다음 정책에 따르면 사용자는 test 함수 호출 권한을 SNS 주제에 부여할 수 있습니다.

예 함수 정책 권한 관리

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*", "Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } } } ] }

이 조건은 보안 주체가 다른 서비스 또는 계정이 아닌 Amazon SNS여야 합니다. 리소스 패턴에 따르면 함수 이름은 test이고 버전 번호나 별칭이 포함되어야 합니다. 예: test:v1.

Lambda 및 기타 AWS 서비스의 리소스 및 조건에 대한 자세한 내용은 IAM 사용 설명서작업, 리소스 및 조건 키를 참조하십시오.

함수

아래 표에 설명된 것과 같이, 함수에 대한 작업도 특정 함수에만 실행되도록 함수, 버전, 별칭 ARN 등으로 제한할 수 있습니다. 리소스 제한이 지원되지 않는 작업은 모든 리소스(*)를 대상으로만 부여할 수 있습니다.

이벤트 소스 매핑

이벤트 소스 매핑에서는 삭제 및 업데이트 권한을 특정 이벤트 소스로 제한할 수 있습니다. 사용자가 이벤트 소스를 호출하기 위해 구성할 수 있는 함수를 lambda:FunctionArn 조건으로 제한할 수 있습니다.

이러한 작업에서는 리소스가 이벤트 소스 매핑이며, 따라서 해당 이벤트 소스 매핑으로 호출되는 함수에 따라 Lambda의 조건으로 권한을 제어할 수 있습니다.

이벤트 소스 매핑

작업 리소스 Condition

DeleteEventSourceMapping

UpdateEventSourceMapping

이벤트 소스 매핑

lambda:FunctionArn

CreateEventSourceMapping

*

lambda:FunctionArn

GetEventSourceMapping

ListEventSourceMappings

*

없음

계층

계층 작업으로 사용자가 함수에 사용하거나 관리할 수 있는 계층을 제한할 수 있습니다. 계층 사용과 관련된 작업 및 권한은 계층의 버전에 적용되며, PublishLayerVersion은 계층 이름에 적용됩니다. 어느 쪽이든 와일드카드를 사용하여 사용자가 작업할 수 있는 계층을 이름별로 제한할 수 있습니다.

이 페이지에서: