本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS SAM策略範本
AWS Serverless Application Model (AWS SAM) 可讓您從政策範本清單中選擇,將 Lambda 函數和 AWS Step Functions 狀態機器的許可範圍限定在應用程式使用的資源。
AWS SAM 使用原則範本 AWS Serverless Application Repository 的應用程式不需要任何特殊的客戶確認,即可從. AWS Serverless Application Repository
若您希望申請增加新的政策範本,請執行以下動作:
-
針對專案分支中的原則來源檔案提交提取要求。
develop
AWS SAM GitHub 您可以在網站上的原始檔案中找到原始檔案。 GitHub -
在 AWS SAM GitHub 專案中提交問題,其中包含提取請求的原因以及要求連結。使用此連結提交新問題:AWS Serverless Application Model: 問題
。
語法
針對您在範本檔案中指定的每個原則 AWS SAM 範本,您必須一律指定包含原則範本預留位置值的物件。如果政策範本不需要任何預留位置值,您必須指定空白物件。
YAML
MyFunction: Type: AWS::Serverless::Function Properties: Policies: - PolicyTemplateName1: # Policy template with placeholder value Key1: Value1 - PolicyTemplateName2: {} # Policy template with no placeholder value
範例
範例 1:帶有預留位置值的政策範本
以下範例顯示 SQSPollerPolicy 政策範本應將 QueueName
視為資源。 AWS SAM 範本會擷取 "MyQueue
" Amazon SQS 佇列的名稱,您可以在相同的應用程式中建立該佇列,也可以將其作為應用程式的參數要求。
MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName
範例 2:無預留位置值的政策範本
以下範例包含 CloudWatchPutMetricPolicy 政策範本,其並無任何預留位置值。
注意
即使沒有預留位置值,您也必須指定空白物件,否則會導致錯誤。
MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - CloudWatchPutMetricPolicy: {}
策略範本表格
以下是可用策略範本的表格。
政策範本 | 描述 |
---|---|
AcmGetCertificatePolicy | 授與讀取憑證的權限 AWS Certificate Manager。 |
AMIDescribePolicy | 授予描述 Amazon 機器映像(AMI)的權限。 |
AthenaQueryPolicy | 授與執行 Athena 查詢的權限。 |
AWSSecretsManagerGetSecretValuePolicy | 授予取得指定密碼之密碼密 AWS Secrets Manager 碼值的權限。 |
AWSSecretsManagerRotationPolicy | 授予旋轉密碼的權限 AWS Secrets Manager。 |
CloudFormationDescribeStacksPolicy | 授予描述 AWS CloudFormation 堆棧的權限。 |
CloudWatchDashboardPolicy | 授予將指標放置在 CloudWatch 儀表板上操作的權限。 |
CloudWatchDescribeAlarmHistoryPolicy | 授予描述 CloudWatch 警報歷史記錄的權限。 |
CloudWatchPutMetricPolicy | 授予將指標傳送至的權限 CloudWatch。 |
CodeCommitCrudPolicy | 授與在特定存放庫中建立/讀取/更新/刪除物件的權限。 CodeCommit |
CodeCommitReadPolicy | 授與讀取特定 CodeCommit 存放庫中物件的權限。 |
CodePipelineLambdaExecutionPolicy | 授與叫用的 Lambda 函數的權限, CodePipeline 以報告工作狀態。 |
CodePipelineReadOnlyPolicy | 授予讀取權限以取得 CodePipeline 管線的詳細資料。 |
ComprehendBasicAccessPolicy | 授予偵測實體、關鍵片語、語言和情緒的權限。 |
CostExplorerReadOnlyPolicy | 將帳單歷史記錄的唯讀 Cost Explorer API 授與唯讀權限。 |
DynamoDBBackupFullAccessPolicy | 為表格授與 DynamoDB 隨需備份的讀取和寫入權限。 |
DynamoDBCrudPolicy | 將建立、讀取、更新和刪除權限授予 Amazon DynamoDB 表格。 |
DynamoDBReadPolicy | 為 DynamoDB 資料表提供唯讀權限。 |
DynamoDBReconfigurePolicy | 授與重新設定 DynamoDB 表格的權限。 |
DynamoDBRestoreFromBackupPolicy | 授與從備份還原 DynamoDB 資料表的權限。 |
DynamoDBStreamReadPolicy | 授予描述和讀取 DynamoDB 串流和記錄的權限。 |
DynamoDBWritePolicy | 將唯寫權限授與 DynamoDB 表格。 |
EC2CopyImagePolicy | 授予複製 Amazon EC2 映像的權限。 |
EC2DescribePolicy | 授予描述亞馬遜彈性運算雲端 (Amazon EC2) 執行個體的權限。 |
EcsRunTaskPolicy | 授與啟動任務定義新任務的權限。 |
EFSWriteAccessPolicy | 授與使用寫入存取權來掛接 Amazon EFS 檔案系統的權限。 |
EKSDescribePolicy | 授予描述或列出 Amazon EKS 叢集的權限。 |
ElasticMapReduceAddJobFlowStepsPolicy | 授與將新步驟新增至執行中叢集的權限。 |
ElasticMapReduceCancelStepsPolicy | 授與取消擱置中步驟或執行中叢集中步驟的權限。 |
ElasticMapReduceModifyInstanceFleetPolicy | 授與列出叢集中執行個體叢集的詳細資料和修改容量的權限。 |
ElasticMapReduceModifyInstanceGroupsPolicy | 授與列出叢集中執行個體群組的詳細資料和修改設定的權限。 |
ElasticMapReduceSetTerminationProtectionPolicy | 授與設定叢集終止保護的權限。 |
ElasticMapReduceTerminateJobFlowsPolicy | 授與關閉叢集的權限。 |
ElasticsearchHttpPostPolicy | 給予 POST 權限 Amazon OpenSearch 服務。 |
EventBridgePutEventsPolicy | 授與將事件傳送至的權限 EventBridge。 |
FilterLogEventsPolicy | 授與從指定 CloudWatch 記錄群組篩選記錄事件的權限。 |
FirehoseCrudPolicy | 授予建立、寫入、更新和刪除 Firehose 傳送串流的權限。 |
FirehoseWritePolicy | 授予寫入 Firehose 交付串流的權限。 |
KinesisCrudPolicy | 授予建立、發佈和刪除 Amazon Kinesis 串流的權限。 |
KinesisStreamReadPolicy | 授予列出和讀取 Amazon Kinesis 串流的權限。 |
KMSDecryptPolicy | 授予使用 AWS Key Management Service (AWS KMS) 金鑰進行解密的權限。 |
KMSEncryptPolicy | 授予使用 AWS Key Management Service (AWS KMS) 金鑰加密的權限。 |
LambdaInvokePolicy | 授與叫用 AWS Lambda 函數、別名或版本的權限。 |
MobileAnalyticsWriteOnlyAccessPolicy | 提供唯寫權限,以便為所有應用程式資源放置事件資料。 |
OrganizationsListAccountsPolicy | 授與列出子帳號名稱和 ID 的唯讀權限。 |
PinpointEndpointAccessPolicy | 授予取得和更新 Amazon 精確應用程式端點的權限。 |
PollyFullAccessPolicy | 授予對 Amazon Polly 詞典資源的完全訪問權限。 |
RekognitionDetectOnlyPolicy | 授予檢測臉部,標籤和文本的權限。 |
RekognitionFacesManagementPolicy | 授予在 Amazon Rekognition 集合中新增、刪除和搜尋臉孔的權限。 |
RekognitionFacesPolicy | 授予比較和檢測臉部和標籤的權限。 |
RekognitionLabelsPolicy | 授予檢測對象和協調標籤的權限。 |
RekognitionNoDataAccessPolicy | 授予比較和檢測臉部和標籤的權限。 |
RekognitionReadPolicy | 授予列出和搜索面孔的權限。 |
RekognitionWriteOnlyAccessPolicy | 授予建立集合和索引臉孔的權限。 |
Route53ChangeResourceRecordSetsPolicy | 授予在 Route 53 中變更資源記錄集的權限。 |
S3CrudPolicy | 授予建立、讀取、更新和刪除權限,以便對 Amazon S3 儲存貯體中的物件執行動作。 |
S3FullAccessPolicy | 授予對 Amazon S3 儲存貯體中物件執行動作的完整存取權限。 |
S3ReadPolicy | 授予讀取 Amazon Simple Storage Service (Amazon S3) 儲存貯體中物件的唯讀權限。 |
S3WritePolicy | 授予將物件寫入 Amazon S3 儲存貯體的寫入權限。 |
SageMakerCreateEndpointConfigPolicy | 授與在中建立端點組態的權限 SageMaker。 |
SageMakerCreateEndpointPolicy | 授與在中建立端點的權限 SageMaker。 |
ServerlessRepoReadWriteAccessPolicy | 授予在服務中建立和列出應用程式的權 AWS Serverless Application Repository 限。 |
SESBulkTemplatedCrudPolicy | 授予發送電子郵件,模板化電子郵件,模板化批量電子郵件和驗證身份的權限。 |
SESBulkTemplatedCrudPolicy_v2 | 授予傳送 Amazon SES 電子郵件、範本化電子郵件和範本化大量電子郵件的權限,以及驗證身分。 |
SESCrudPolicy | 授予發送電子郵件和驗證身份的權限。 |
SESEmailTemplateCrudPolicy | 授予建立、取得、列出、更新和刪除 Amazon SES 電子郵件範本的權限。 |
SESSendBouncePolicy | SendBounce 授予亞馬遜簡易電子郵件服務 (Amazon SES) 身分識別的權限。 |
SNSCrudPolicy | 授予建立、發佈和訂閱 Amazon SNS 主題的權限。 |
SNSPublishMessagePolicy | 授予將訊息發佈至亞馬遜簡單通知服務 (Amazon SNS) 主題的權限。 |
SQSPollerPolicy | 授予輪詢 Amazon Simple Queue Service (Amazon SQS) 佇列的權限。 |
SQSSendMessagePolicy | 授予將訊息傳送至 Amazon SQS 佇列的權限。 |
SSMParameterReadPolicy | 授予從 Amazon EC2 Systems Manager (SSM) 參數存放區存取參數的權限,以便在此帳戶中載入機密。當參數名稱沒有斜線前綴時使用。 |
SSMParameterWithSlashPrefixReadPolicy | 授予從 Amazon EC2 Systems Manager (SSM) 參數存放區存取參數的權限,以便在此帳戶中載入機密。當參數名稱具有斜線前綴時使用。 |
StepFunctionsExecutionPolicy | 授予啟動 Step Functions 狀態機器執行的權限。 |
TextractDetectAnalyzePolicy | 允許訪問以檢測和分析使用亞馬遜文本提取的文檔。 |
TextractGetResultPolicy | 允許從 Amazon Textract 獲取檢測到和分析的文檔的訪問權限。 |
TextractPolicy | 可以完全訪問 Amazon Textract。 |
VPCAccessPolicy | 提供建立、刪除、描述和卸離彈性網路介面的存取權。 |
疑難排解
SAM CLI 錯誤:「必須指定原則範本 '< policy-template-name >' 的有效參數值」
執行 sam build
時,您會看到下列錯誤:
"Must specify valid parameter values for policy template '<policy-template-name>'"
這表示您在宣告沒有任何預留位置值的原則範本時,並未傳遞空白物件。
若要修正此問題,請宣告原則,如下列範例所示CloudWatchPutMetricPolicy。
MyFunction: Policies: - CloudWatchPutMetricPolicy: {}