Vous pouvez configurer l'environnement sandbox pour qu'il corresponde aux exigences de votre projet, y compris les dépendances, les commandes de build et les paramètres d'exécution.
L'agent Kiro Web détecte le type de votre projet et configure automatiquement le sandbox en fonction des fichiers de configuration de votre dépôt (comme package.json, requirements.txt ou des manifestes de build). Cela garantit que l'environnement correspond aux exigences de votre projet sans configuration manuelle.
Vous pouvez personnaliser l'environnement sandbox à partir de la page Paramètres de l'agent, sous Sandbox. Les options disponibles comprennent :
Si l'agent ou les serveurs MCP de votre sandbox doivent appeler des API AWS — par exemple pour déployer une infrastructure, interroger des journaux CloudWatch ou gérer des ressources dans votre compte — vous pouvez configurer un rôle IAM que Kiro Web assumera en votre nom.
Lorsqu'une tâche s'exécute, Kiro Web assume votre rôle et fournit des identifiants de courte durée au sandbox. L'agent, les outils CLI et tous les serveurs MCP exécutés dans le sandbox utilisent tous ces identifiants pour interagir avec vos ressources AWS.
Kiro Web valide le rôle lors de l'enregistrement. Si le rôle ne peut pas être assumé — par exemple parce que la politique de confiance est manquante ou que l'ARN est incorrect — une erreur s'affichera et la configuration ne sera pas enregistrée.
Pour que Kiro Web puisse assumer votre rôle, la politique de confiance du rôle doit autoriser le principal de service q.amazonaws.com avec les permissions sts:AssumeRole, sts:SetSourceIdentity et sts:TagSession. L'identité source est votre ID d'utilisateur Kiro, ce qui garantit que seul votre compte Kiro peut assumer le rôle et fournit une piste d'audit immuable dans CloudTrail.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "q.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "sts:SourceIdentity": "<your-kiro-userId>" } } }, { "Effect": "Allow", "Principal": { "Service": "q.amazonaws.com" }, "Action": "sts:TagSession", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "GroupIds", "KiroSessionId" ] } } } ] }
Remplacez <your-kiro-userId> par votre ID d'utilisateur Kiro réel. Vous pouvez trouver cette valeur dans le tiroir des paramètres du rôle IAM — elle s'affiche avec un bouton de copie pour que vous puissiez la coller directement dans votre politique.
La politique de confiance effectue les actions suivantes :
sts:AssumeRole — permet à Kiro Web d'assumer le rôlests:SetSourceIdentity — permet à Kiro Web de définir votre ID d'utilisateur comme identité source, qui apparaît dans CloudTrail pour toutes les actions effectuées avec la sessionsts:SourceIdentity — garantit que seul votre ID d'utilisateur spécifique peut être défini comme identité sourcests:TagSession — permet à Kiro Web de transmettre des balises de session (GroupIds, KiroSessionId) pour le contrôle d'accès basé sur les attributsaws:TagKeys — restreint les clés de balise qui peuvent être transmisesAttachez au rôle une politique de permissions qui accorde uniquement ce dont l'agent a besoin. Par exemple, si vous utilisez la Power AWS Observability, votre rôle pourrait avoir besoin de :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:ListMetrics", "logs:DescribeLogGroups", "logs:StartQuery", "logs:GetQueryResults" ], "Resource": "*" } ] }
Lorsque votre organisation compte plusieurs utilisateurs partageant un seul rôle IAM, vous pouvez utiliser des attributs de session pour partitionner l'accès afin que chaque utilisateur ne puisse accéder qu'à ses propres ressources. Kiro Web définit deux attributs sur chaque session que vous pouvez référencer dans les conditions de politique IAM :
GroupIds — une liste séparée par des virgules d'au plus 5 ID de groupe AWS Identity Center auxquels appartient l'utilisateur. Disponible uniquement pour les utilisateurs d'Identity Center.KiroSessionId — un identifiant unique pour la session de tâche Kiro Web en cours. Vous pouvez trouver le KiroSessionId dans l'URL de la page.Si plusieurs utilisateurs de votre répertoire Identity Center partagent le même rôle, utilisez un caractère générique sur le préfixe du magasin d'identités dans la condition sts:SourceIdentity. Cela permet à tout utilisateur de ce répertoire d'assumer le rôle :
"Condition": { "StringLike": { "sts:SourceIdentity": "d-xxxxxxxxxx.*" } }
Remplacez d-xxxxxxxxxx par l'ID de votre répertoire Identity Center. Vous pouvez le trouver dans la console AWS IAM Identity Center sous Settings > Identity source.
La politique suivante montre comment partitionner l'accès en utilisant à la fois l'identité source et l'appartenance à un groupe dans une seule politique :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUserToReadAndWriteOwnPrefix", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::my-team-bucket/${aws:SourceIdentity}/*" }, { "Sid": "AllowUserToListOwnPrefix", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::my-team-bucket", "Condition": { "StringLike": { "s3:prefix": "${aws:SourceIdentity}/*" } } }, { "Sid": "AllowGroupToReadSharedResources", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::team-bucket", "arn:aws:s3:::team-bucket/*" ], "Condition": { "StringLike": { "aws:PrincipalTag/GroupIds": "<your-identity-center-group-id>" } } }, { "Sid": "AllowGroupToAccessSecrets", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret:teams/*", "Condition": { "StringLike": { "aws:PrincipalTag/GroupIds": "<your-identity-center-group-id>" } } }, { "Sid": "AllowSessionScopedScratchAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::my-team-bucket/scratch/${aws:PrincipalTag/KiroSessionId}/*" } ] }
${aws:SourceIdentity} dans les chemins de ressources pour délimiter l'accès par utilisateur. La session de chaque utilisateur est automatiquement confinée à son propre préfixe.aws:PrincipalTag/GroupIds pour accorder l'accès en fonction de l'appartenance à un groupe Identity Center.aws:PrincipalTag/KiroSessionId pour limiter l'accès à une seule session de tâche.Remplacez <your-identity-center-group-id> par l'ID de votre groupe Identity Center. Vous pouvez trouver les ID de groupe dans la console AWS IAM Identity Center sous Groups.
Les identifiants sont de courte durée, actualisés automatiquement pendant l'exécution de la tâche, et supprimés une fois la tâche terminée.
Configuration de l'environnement