AddPermission - AWS Lambda

AddPermission

AWS 서비스, AWS 계정 또는 AWS 조직에 함수를 사용할 권한을 부여합니다. 함수 수준에서 정책을 적용하거나, 단일 버전 또는 별칭에 대한 액세스를 제한하도록 한정자를 지정할 수 있습니다. 한정자를 사용하는 경우, 호출자는 해당 버전 또는 별칭의 전체 Amazon 리소스 이름(ARN)을 사용하여 함수를 호출해야 합니다. 참고: Lambda는 $LATEST 버전에 정책 추가를 지원하지 않습니다.

다른 계정에 권한을 부여하려면 계정 ID를 Principal로 지정합니다. AWS Organizations에서 정의된 조직에 권한을 부여하려면 조직 ID를 PrincipalOrgID로 지정합니다. AWS 서비스의 경우, 보안 주체는 s3.amazonaws.com 또는 sns.amazonaws.com과 같이 서비스에서 정의한 도메인 스타일 식별자입니다. AWS 서비스의 경우, 연결된 리소스의 ARN을 SourceArn으로 지정할 수도 있습니다. 소스를 지정하지 않고 서비스 보안 주체에 권한을 부여하면, 다른 계정이 Lambda 함수를 호출하도록 계정의 리소스를 구성할 수 있습니다.

이 작업은 함수의 리소스 기반 권한 정책에 문을 추가합니다. 함수 정책에 대한 자세한 내용은 Lambda에 리소스 기반 정책 사용을 참조하세요.

Request Syntax

POST /2015-03-31/functions/FunctionName/policy?Qualifier=Qualifier HTTP/1.1 Content-type: application/json { "Action": "string", "EventSourceToken": "string", "FunctionUrlAuthType": "string", "Principal": "string", "PrincipalOrgID": "string", "RevisionId": "string", "SourceAccount": "string", "SourceArn": "string", "StatementId": "string" }

URI 요청 파라미터

요청은 다음 URI 파라미터를 사용합니다.

FunctionName

Lambda 함수, 버전 또는 별칭의 이름입니다.

이름 형식
  • 함수 이름 - my-function(이름만), my-function:v1(별칭 포함).

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

  • 부분적 ARN - 123456789012:function:my-function.

모든 형식에 버전 번호 또는 별칭을 추가할 수 있습니다. 길이 제한은 전체 ARN에만 적용됩니다. 함수 이름만 지정하는 경우, 길이가 64자로 제한됩니다.

길이 제약: 최소 길이는 1입니다. 최대 길이는 140입니다.

Pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

필수 항목 여부: 예

Qualifier

함수의 게시된 버전에 권한을 추가할 버전 또는 별칭을 지정합니다.

길이 제약: 최소 길이는 1입니다. 최대 길이 128.

Pattern: (|[a-zA-Z0-9$_-]+)

요청 본문

요청은 JSON 형식으로 다음 데이터를 받습니다.

Action

보안 주체가 함수에서 사용할 수 있는 작업입니다. 예: lambda:InvokeFunction 또는 lambda:GetFunction.

유형: 문자열

패턴: (lambda:[*]|lambda:[a-zA-Z]+|[*])

필수 항목 여부: 예

EventSourceToken

Alexa Smart Home 함수의 경우 호출자가 제공해야 하는 토큰입니다.

유형: 문자열

길이 제약: 최소 길이는 0. 최대 길이는 256입니다.

패턴: [a-zA-Z0-9._\-]+

필수 항목 여부: 아니요

FunctionUrlAuthType

함수 URL에서 사용하는 인증 유형입니다. 액세스 권한을 인증된 사용자로 제한하려면 AWS_IAM으로 설정합니다. 퍼블릭 엔드포인트를 생성하기 위해 IAM 인증을 우회하려면 NONE으로 설정합니다. 자세한 내용은 Lambda 함수 URL에 대한 보안 및 인증 모델 섹션을 참조하세요.

유형: 문자열

유효 값: NONE | AWS_IAM

필수 항목 여부: 아니요

Principal

함수를 호출하는 AWS 서비스 또는 AWS 계정입니다. 서비스를 지정하는 경우, SourceArn 또는 SourceAccount를 사용하여 해당 서비스를 통해 함수를 호출할 수 있는 사람을 제한합니다.

유형: 문자열

패턴: [^\s]+

필수 항목 여부: 예

PrincipalOrgID

AWS Organizations에서 조직의 식별자입니다. 이 조직의 모든 AWS 계정에 권한을 부여하려면 이 식별자를 사용합니다.

유형: 문자열

길이 제약: 최소 길이는 12자입니다. 최대 길이는 34자입니다.

패턴: ^o-[a-z0-9]{10,32}$

필수 항목 여부: 아니요

RevisionId

개정 ID가 지정된 ID와 일치하는 경우에만 정책을 업데이트합니다. 마지막으로 정책을 읽은 후 변경된 정책이 수정되지 않도록 하려면 이 옵션을 사용합니다.

유형: 문자열

필수 항목 여부: 아니요

SourceAccount

AWS 서비스의 경우 리소스를 소유한 AWS 계정의 ID입니다. SourceArn과 함께 사용하여 지정된 계정이 리소스를 소유하는지 확인합니다. Amazon S3 버킷을 소유자가 삭제하고 다른 계정에서 다시 생성할 수 있습니다.

유형: 문자열

길이 제약: 최대 길이는 12입니다.

Pattern: \d{12}

필수 항목 여부: 아니요

SourceArn

AWS 서비스의 경우 함수를 호출하는 AWS 리소스의 ARN입니다. 예를 들어 Amazon S3 버킷 또는 Amazon SNS 주제입니다.

Lambda는 StringLike 연산자를 사용하여 비교를 구성합니다.

유형: 문자열

패턴: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

필수 항목 여부: 아니요

StatementId

명령문을 동일한 정책의 다른 명령문과 구별하는 명령문 식별자입니다.

유형: 문자열

길이 제약: 최소 길이는 1. 최대 길이는 100.

패턴: ([a-zA-Z0-9-_]+)

필수 항목 여부: 예

응답 구문

HTTP/1.1 201 Content-type: application/json { "Statement": "string" }

응답 요소

작업이 성공하면 서비스가 HTTP 201 응답을 다시 전송합니다.

다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.

Statement

함수 정책에 추가되는 권한 문입니다.

유형: 문자열

Errors

모든 작업에서 발생하는 일반적인 오류에 대한 자세한 내용은 일반적인 오류 섹션을 참조하세요.

InvalidParameterValueException

요청의 파라미터 중 하나가 유효하지 않습니다.

HTTP 상태 코드: 400

PolicyLengthExceededException

리소스에 대한 권한 정책이 너무 큽니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP 상태 코드: 400

PreconditionFailedException

제공된 RevisionId가 Lambda 함수 또는 별칭에 대한 최신 RevisionId와 일치하지 않습니다. 리소스의 최신 RevisionId를 검색하려면 GetFunction 또는 GetAlias API 작업을 호출합니다.

HTTP 상태 코드: 412

ResourceConflictException

리소스가 이미 있거나 다른 작업이 진행 중입니다.

HTTP 상태 코드: 409

ResourceNotFoundException

요청에 지정된 리소스가 없습니다.

HTTP 상태 코드: 404

ServiceException

AWS Lambda 서비스에 내부 오류가 발생했습니다.

HTTP 상태 코드: 500

TooManyRequestsException

요청 처리량 제한을 초과했습니다. 자세한 내용은 Lambda 할당량을 참조하세요.

HTTP Status Code: 429

참고

이 API를 언어별 AWS SDK 중 하나로 사용하는 방법에 대한 자세한 설명은 다음을 참조하세요.