AddPermission - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AddPermission

授予 AWS 服務、AWS 帳戶 或 AWS 組織使用函數的許可。您可以在函數層級套用政策,或指定限定詞來將存取限制在單一版本或別名。若您使用限定詞,呼叫者必須使用該版本的完整 Amazon Resource Name (ARN) 或別名來呼叫函數。注意:Lambda 不支援將政策新增至 $LATEST 版本。

若要將許可授予其他另一個帳戶,請將帳戶 ID 指定為 Principal。若要授予許可給在 AWS Organizations 中定義的組織,指定組織 ID 為 PrincipalOrgID。對於 AWS 服務,主體是服務定義的網域樣式識別符,例如 s3.amazonaws.comsns.amazonaws.com。對於 AWS 服務,您也可以將相關資源的 ARN 指定為 SourceArn。若您在沒有指定來源的情況下將許可授予服務主體,其他帳戶可能會在其帳戶中設定資源來呼叫您的 Lambda 函數。

此操作會為函數將陳述式新增到資源型許可政策。如需函數政策的詳細資訊,請參閱針對 Lambda 使用資源型政策

請求語法

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。

模式:(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。

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

請求主體

請求接受採用 JSON 格式的下列資料。

Action

主體可在函數上使用的動作。例如,lambda:InvokeFunctionlambda:GetFunction

類型:String

模式:(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 帳戶。若您指定服務,請使用 SourceArnSourceAccount 來限制可透過服務呼叫函數的對象。

類型:String

模式:[^\s]+

必要:是

PrincipalOrgID

AWS Organizations 中組織的識別符。用這個授予許可給此組織下的所有 AWS 帳戶。

類型:字串

長度限制:長度下限為 12。長度上限為 34。

模式:^o-[a-z0-9]{10,32}$

必要:否

RevisionId

只有在修訂版本 ID 符合指定的 ID 時才更新政策。使用此選項來避免修改自您最近一次讀取之後產生變更的政策。

類型:字串

必要:否

SourceAccount

對於 AWS 服務,指擁有資源的 AWS 帳戶 之 ID。搭配 SourceArn 一起使用,可確保指定的帳戶擁有資源。Amazon S3 儲存貯體可以由擁有者刪除,並由其他帳戶重新建立。

類型:字串

長度限制:長度上限為 12。

模式:\d{12}

必要:否

SourceArn

對於 AWS 服務,調用函數的 AWS 資源之 ARN。例如,Amazon S3 儲存貯體或 Amazon SNS 主題。

請注意,Lambda 會使用 StringLike 運算子來設定比較。

類型:String

模式: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

已新增至函數政策的許可陳述式。

類型:字串

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

InvalidParameterValueException

請求中的其中一個參數無效。

HTTP 狀態碼:400

PolicyLengthExceededException

資源的許可政策太大。如需詳細資訊,請參閱 Lambda 配額

HTTP 狀態碼:400

PreconditionFailedException

RevisionId 提供的與 Lambda 函數或別名 RevisionId 的最新版本不相符。呼叫GetFunctionGetAlias API 作業以擷取資源 RevisionId 的最新資源。

HTTP 狀態碼:412

ResourceConflictException

資源已存在,或另一個操作正在進行中。

HTTP 狀態碼:409

ResourceNotFoundException

請求中指定的資源不存在。

HTTP 狀態碼:404

ServiceException

AWS Lambda 服務發生內部錯誤。

HTTP 狀態碼:500

TooManyRequestsException

超出請求輸送量限制。如需詳細資訊,請參閱 Lambda 配額

HTTP 狀態碼:429

另請參閱

如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊,請參閱下列說明: