我希望我的 AWS Lambda 函數能夠存取我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
簡短描述
若要讓 Lambda 函數存取同一個 AWS 帳戶中的 Amazon S3 儲存貯體,請執行下列動作:
1. 為 Lambda 函數建立 AWS 身分和存取管理 (IAM) 角色,同時授予 S3 儲存貯體的存取權。
2. 將 IAM 角色設定為 Lambda 函數執行角色。
3. 確認 S3 儲存貯體政策未明確拒絕對 Lambda 函數或其執行角色的存取。
**重要事項:**如果您的 S3 儲存貯體和功能 IAM 角色位於不同的帳戶中,則您還必須授予 S3 儲存貯體政策所需的權限。如需詳細資訊,請參閱如何提供對 Amazon S3 儲存貯體中物件的跨帳戶存取權?
解決方案
為 Lambda 函數建立 IAM 角色,以授予 S3 儲存貯體的存取權
1. 請遵循在 IAM 主控台中建立執行角色中的步驟。
2. 從 IAM 角色清單中,選擇您剛建立的角色。
3. 信任政策必須允許 Lambda 透過將** lambda.amazonaws.com 新增為受信任的服務來擔任執行角色。選擇信任關係索引標籤,然後選擇編輯信任政策**,再使用下列項目取代政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4.選擇更新政策。
5. 在權限索引標籤中,選擇新增內嵌政策。
6. 選擇 JSON 索引標籤。
7. 輸入以資源為基礎的 IAM 政策,以授予 S3 儲存貯體的存取權。如需詳細資訊,請參閱為 AWS Lambda 使用以資源為基礎的政策。
下列 IAM 政策範例授予對具有 Get 權限的特定 Amazon S3 儲存貯體的存取權。若要存取 Amazon S3 儲存貯體內的物件,請確保指定正確的路徑或使用萬用字元 (「*」)。如需詳細資訊,請參閱撰寫 IAM 政策: 如何授予對 Amazon S3 儲存貯體的存取權,以取得詳細資訊。
**重要事項:**使用您的 S3 儲存貯體 Amazon Resource Name (ARN) 取代 "arn:aws:s3:::EXAMPLE-BUCKET"。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExampleStmt",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET/*"
]
}
]
}
6. 選擇檢閱政策。
7. 對於名稱,請輸入政策名稱。
8. 選擇建立政策。
將 IAM 角色設定為 Lambda 函數執行角色
1. 開啟 Lambda 主控台。
2. 選擇您的 Lambda 函數。
3. 在執行角色下,針對現有角色選取您建立的 IAM 角色。
4. 選擇儲存。
確認 S3 儲存貯體政策未明確拒絕對 Lambda 函數或其執行角色的存取
若要檢閱或編輯 S3 儲存貯體政策,請使用 Amazon S3 主控台按照新增儲存貯體政策中的指示進行操作。
**重要事項:**如果您的 S3 儲存貯體和函數 IAM 角色位於不同的帳戶中,您還必須明確授予 S3 儲存貯體政策的所需權限。如需詳細資訊,請參閱我如何提供對 Amazon S3 儲存貯體中物件的跨帳戶存取權?
下列範例 IAM S3 儲存貯體政策授予對 S3 儲存貯體的 Lambda 執行角色跨帳戶存取權。
**重要事項:**使用您的 S3 儲存貯體 ARN 取代 "arn:aws:s3:::EXAMPLE-BUCKET/*"。使用您的 Lambda 執行角色 ARN 取代 "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012"。
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExampleStmt",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::EXAMPLE-BUCKET/*"
],
"Principal": {
"AWS": [
"arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012"
]
}
}
]
}
相關資訊
AWS 政策產生器