View a markdown version of this page

為 AWS 安全代理程式建立 IAM 角色 - AWS 安全代理程式

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

為 AWS 安全代理程式建立 IAM 角色

AWS Security Agent 以三種方式使用 IAM 角色:

  1. 應用程式角色:建立 AWS Security Agent 應用程式時使用。對於 IAM Identity Center 和管理存取連結使用案例,服務會擔任此角色,以授予 WebApp 使用者與 AWS Security Agent APIs許可。

  2. 滲透測試服務角色:在建立客服人員空間做為可用角色清單時指定。稍後,WebApp 使用者會在建立滲透測試時選取其中一個角色。AWS Security Agent 服務會擔任此角色,以在測試期間存取您的 AWS 資源。

  3. 演員角色:用來驗證和授權對目標 Web 應用程式的請求 (例如 AWS API Gateway APIs)。這些角色會在客服人員空間建立期間提供。AWS Security Agent 代理程式會擔任演員角色來與您的目標應用程式互動。

應用程式角色

在 服務中建立 AWS Security Agent 應用程式時,會使用 應用程式角色。對於 IAM Identity Center 和管理存取連結身分驗證案例,AWS Security Agent 服務會擔任此角色,授予 WebApp 使用者與 AWS Security Agent APIs 互動的必要許可。

所需的許可

此角色需要下列許可:

  • 叫用 AWS Security Agent API 操作

  • 讀取和寫入應用程式組態資料

  • 存取使用者工作階段資訊

  • 管理 WebApp 使用者的身分驗證字符

信任政策

信任政策必須允許 AWS Security Agent 服務擔任此角色:

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

許可政策

角色應包含下列項目的許可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "securityagent:GetApplication", "securityagent:UpdateApplication", "securityagent:ListAgentInstances", "securityagent:CreatePentestSession" ], "Resource": "arn:aws:securityagent:*:*:application/*" } ] }
注意

根據您的特定應用程式需求和最低權限原則自訂許可。

滲透測試服務角色

將客服人員空間建立為可用角色清單時,會指定滲透測試服務角色。當 WebApp 使用者建立滲透測試時,他們會選取其中一個角色。然後,AWS Security Agent 服務會擔任此角色來存取和測試您的 AWS 資源。

所需的許可

此角色需要許可,才能在滲透測試期間存取和分析您的 AWS 資源:

  • 讀取和描述 VPC 組態和網路拓撲

  • 檢查 EC2 執行個體、安全群組和網路 ACLs

  • 分析 IAM 政策和資源許可

  • 讀取 CloudWatch 日誌和指標

  • 存取與安全性測試相關的 AWS 服務組態

信任政策

信任政策必須允許 AWS Security Agent 服務擔任此角色以進行滲透測試操作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "your-external-id" } } } ] }
注意

允許跨帳戶或服務存取時,請使用外部 ID 來提高安全性。

許可政策

此角色應包含對 AWS 資源的唯讀存取權。請考慮使用這些 受管政策:

  • SecurityAudit - 用於安全稽核的 AWS 受管政策

  • ViewOnlyAccess - 對大多數 AWS 服務的唯讀存取

或建立具有特定許可的自訂政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "vpc:Describe*", "iam:Get*", "iam:List*", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" } ] }
重要

僅授予滲透測試範圍所需的最低許可。根據您要包含在安全性測試中的 AWS 服務,檢閱和調整許可。

演員角色

執行者角色用於驗證和授權滲透測試期間對目標 Web 應用程式的請求。這些角色會在代理程式空間建立期間提供,AWS Security Agent 代理程式會擔任這些角色,以與您的目標應用程式端點 (例如 AWS API Gateway APIs、Lambda URLs 或其他 AWS 託管的應用程式) 互動。

所需的許可

此角色需要下列許可:

  • 叫用 API Gateway 端點

  • 執行 Lambda 函數

  • 存取應用程式特定的 AWS 資源

  • 使用目標應用程式的身分驗證機制進行身分驗證

  • 針對應用程式端點執行 HTTP 操作

信任政策

信任政策必須允許 AWS Security Agent 服務擔任此角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "your-external-id" } } } ] }

許可政策

許可取決於您的目標應用程式架構。以下是常見案例的範例:

對於 API Gateway 應用程式

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:us-east-1:*:your-api-id/*" } ] }

對於 Lambda 函數 URLs

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunctionUrl", "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-east-1:*:function:your-function-name" } ] }

適用於具有 Cognito 身分驗證的 Application Load Balancer

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge" ], "Resource": "arn:aws:cognito-idp:us-east-1:*:userpool/your-user-pool-id" } ] }
重要

設定演員角色許可,以符合目標應用程式的身分驗證和授權要求。角色應具有與 Security Agent 在滲透測試期間模擬的使用者或服務相同的存取層級。