使用 IAM 執行角色存取 AWS 資源 - AWS Device Farm

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

使用 IAM 執行角色存取 AWS 資源

Device Farm 支援指定由自訂測試執行期環境在測試執行期間擔任的 IAM 角色。此功能可讓您的測試安全地存取帳戶中的 AWS 資源,例如 Amazon S3 儲存貯體、DynamoDB 資料表或應用程式依賴的其他 AWS 服務。

概觀

當您指定 IAM 執行角色時,Device Farm 會在測試執行期間擔任此角色,讓您的測試使用角色中定義的許可與 AWS 服務互動。

IAM 執行角色的常見使用案例包括:

  • 存取存放在 Amazon S3 儲存貯體中的測試資料

  • 將測試成品推送至 Amazon S3 儲存貯體

  • 從 AWS AppConfig 擷取應用程式組態

  • 將測試日誌和指標寫入 Amazon CloudWatch

  • 將測試結果或狀態訊息傳送至 Amazon SQS 佇列

  • 在測試工作流程中呼叫 AWS Lambda 函數

IAM 角色需求

若要搭配 Device Farm 使用 IAM 執行角色,您的角色必須符合下列要求:

  • 信任關係:必須信任 Device Farm 服務主體才能擔任該角色。信任政策必須包含 devicefarm.amazonaws.com做為信任的實體。

  • 許可:該角色必須具備必要的許可,才能存取您的測試所需的 AWS 資源。

  • 工作階段持續時間:只要 Device Farm 專案的任務逾時設定,角色的工作階段持續時間上限必須至少為 。根據預設,Device Farm 專案的任務逾時為 150 分鐘,因此您的角色必須支援至少 150 分鐘的工作階段持續時間。

  • 相同的帳戶需求:IAM 角色必須與用來呼叫 Device Farm 的 AWS 帳戶位於相同的 AWS 帳戶中。不支援跨帳戶角色假設。

  • PassRole 許可:呼叫者必須獲授權,才能透過允許對指定執行角色iam:PassRole執行動作的政策傳遞 IAM 角色。

範例信任政策

下列範例顯示允許 Device Farm 擔任執行角色的信任政策。此信任政策應僅連接至您想要與 Device Farm 搭配使用的特定 IAM 角色,而非您帳戶中的其他角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "devicefarm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

許可政策範例

下列範例顯示許可政策,授予測試中常用 AWS 服務的存取權:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket", "arn:aws:s3:::my-test-bucket/*" ] }, { "Effect": "Allow", "Action": [ "appconfig:GetConfiguration", "appconfig:StartConfigurationSession" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/devicefarm/test-*" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:*:*:test-results-*" } ] }

設定 IAM 執行角色

您可以在專案層級或個別測試執行中指定 IAM 執行角色。在專案層級設定時,該專案內的所有執行都會繼承執行角色。在執行中設定的執行角色將取代其父專案上設定的任何 。

如需設定執行角色的詳細說明,請參閱:

您也可以使用 Device Farm API 設定執行角色。如需詳細資訊,請參閱 Device Farm API 參考

最佳實務

為 Device Farm 測試設定 IAM 執行角色時,請遵循下列最佳實務:

  • 最低權限原則:僅授予測試運作所需的最低許可。避免使用過於廣泛的許可,例如*動作或資源。

  • 使用資源特定的許可:盡可能限制特定資源 (例如特定 S3 儲存貯體或 DynamoDB 資料表) 的許可,而不是類型的所有資源。

  • 獨立測試和生產資源:使用專用測試資源和角色,以避免在測試期間意外影響生產系統。

  • 定期角色檢閱:定期檢閱和更新執行角色,以確保其仍符合您的測試需求,並遵循安全最佳實務。

  • 使用條件索引鍵:考慮使用 IAM 條件索引鍵進一步限制何時及如何使用角色。

疑難排解

如果您遇到 IAM 執行角色的問題,請檢查下列項目:

  • 信任關係:確認角色的信任政策包含 devicefarm.amazonaws.com做為信任的服務。

  • 許可:檢查角色是否具有測試嘗試存取之 AWS 服務的必要許可。

  • 測試日誌:檢閱測試執行日誌,了解與 AWS API 呼叫或許可拒絕相關的特定錯誤訊息。