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 중 하나로 사용하는 방법에 대한 자세한 설명은 다음을 참조하세요.