本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 AWS 安全代理程式建立 IAM 角色
AWS Security Agent 以三種方式使用 IAM 角色:
-
應用程式角色:建立 AWS Security Agent 應用程式時使用。對於 IAM Identity Center 和管理存取連結使用案例,服務會擔任此角色,以授予 WebApp 使用者與 AWS Security Agent APIs許可。
-
滲透測試服務角色:在建立客服人員空間做為可用角色清單時指定。稍後,WebApp 使用者會在建立滲透測試時選取其中一個角色。AWS Security Agent 服務會擔任此角色,以在測試期間存取您的 AWS 資源。
-
演員角色:用來驗證和授權對目標 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 在滲透測試期間模擬的使用者或服務相同的存取層級。