Pour accéder à la console Kiro et effectuer des tâches liées à votre abonnement Kiro, vous avez besoin d'autorisations fournies par AWS Identity and Access Management (IAM). AWS IAM est un service AWS qui aide un administrateur à contrôler de manière sécurisée l'accès aux ressources AWS et il est offert sans frais supplémentaires.
Pour activer l'accès, vous pouvez créer une politique basée sur l'identité avec les autorisations nécessaires et l'associer à l'identité IAM qui configure les abonnements Kiro. Pour en savoir plus, consultez Politiques basées sur l'identité pour Kiro.
De plus, Kiro utilise des rôles liés à un service AWS IAM. Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Kiro, plutôt qu'à une identité, et ces rôles sont créés automatiquement pour vous lorsque vous vous abonnez. Pour en savoir plus, consultez Rôles liés à un service pour Kiro.
Les politiques basées sur l'identité sont des documents de politique d'autorisations JSON que vous pouvez associer à une identité, comme un utilisateur IAM, un groupe d'utilisateurs ou un rôle. Ces politiques contrôlent quelles actions les utilisateurs et les rôles peuvent effectuer, sur quelles ressources et sous quelles conditions.
Pour abonner des utilisateurs et configurer votre abonnement, vous avez besoin des autorisations définies dans Autoriser les administrateurs à configurer et à s'abonner à Kiro dans la console.
Pour apprendre à créer une politique basée sur l'identité, consultez Définir des autorisations IAM personnalisées avec des politiques gérées par le client dans le Guide de l'utilisateur AWS IAM.
La politique d'exemple suivante accorde des autorisations pour effectuer des actions dans la console Kiro. La console Kiro est l'endroit où vous abonnez des utilisateurs à Kiro, configurez l'intégration de Kiro avec AWS IAM Identity Center et AWS Organizations, et gérez les paramètres d'abonnement. Cette politique comprend également des autorisations pour créer et configurer des clés KMS gérées par le client.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sso:ListInstances", "sso:CreateInstance", "sso:CreateApplication", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant", "sso:PutApplicationAssignmentConfiguration", "sso:ListApplications", "sso:GetSharedSsoConfiguration", "sso:DescribeInstance", "sso:PutApplicationAccessScope", "sso:DescribeApplication", "sso:DeleteApplication", "sso:CreateApplicationAssignment", "sso:DeleteApplicationAssignment", "sso:UpdateApplication", "sso:DescribeRegisteredRegions", "sso:GetSSOStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "identitystore:DescribeUser" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sso-directory:GetUserPoolInfo", "sso-directory:DescribeUser", "sso-directory:DescribeUsers", "sso-directory:DescribeGroups", "sso-directory:SearchGroups", "sso-directory:SearchUsers", "sso-directory:DescribeDirectory" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "signin:ListTrustedIdentityPropagationApplicationsForConsole", "signin:CreateTrustedIdentityPropagationApplicationForConsole" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "user-subscriptions:ListClaims", "user-subscriptions:ListApplicationClaims", "user-subscriptions:ListUserSubscriptions", "user-subscriptions:CreateClaim", "user-subscriptions:DeleteClaim", "user-subscriptions:UpdateClaim", "user-subscriptions:SetOverageConfig" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "organizations:DescribeAccount", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization", "organizations:DisableAWSServiceAccess", "organizations:EnableAWSServiceAccess" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "codeguru-security:UpdateAccountConfiguration" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": [ "arn:aws:iam::*:role/aws-service-role/q.amazonaws.com/AWSServiceRoleForAmazonQDeveloper" ] }, { "Effect": "Allow", "Action": [ "codewhisperer:UpdateProfile", "codewhisperer:ListProfiles", "codewhisperer:TagResource", "codewhisperer:UnTagResource", "codewhisperer:ListTagsForResource", "codewhisperer:CreateProfile" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "q:ListDashboardMetrics", "q:CreateAssignment", "q:DeleteAssignment", "q:UpdateAssignment" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudwatch:ListMetrics" ], "Resource": [ "*" ] } ] }
Kiro prend en charge des clés de condition qui vous permettent d'appliquer la gouvernance des abonnements dans l'ensemble de votre organisation à l'aide de politiques basées sur l'identité ou de politiques de contrôle des services (SCP) — par exemple, en limitant les groupes auxquels des abonnements Kiro peuvent être attribués ou en empêchant entièrement les attributions individuelles aux utilisateurs. Pour en savoir plus sur les SCP, consultez Politiques de contrôle des services dans le Guide de l'utilisateur AWS Organizations.
Les clés de condition suivantes peuvent être utilisées pour contrôler l'accès aux opérations d'attribution d'abonnement (q:CreateAssignment, q:UpdateAssignment, q:DeleteAssignment).
| Clé de condition | Description | Type |
|---|---|---|
identitystore:RequestUserArn | Filtre l'accès selon l'ARN de l'utilisateur attribué. Format : arn:aws:identitystore:::user/{userId} | Chaîne |
identitystore:RequestGroupArn | Filtre l'accès selon l'ARN du groupe attribué. Format : arn:aws:identitystore:::group/{groupId} | Chaîne |
La SCP suivante refuse CreateAssignment lorsque la demande cible un groupe, ce qui garantit que les abonnements ne peuvent être attribués qu'à des utilisateurs individuels :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "q:CreateAssignment", "Resource": "*", "Condition": { "StringLike": { "identitystore:RequestGroupArn": "arn:aws:identitystore:::group/*" } } } ] }
Un rôle lié à un service est un type unique de rôle IAM qui est lié directement à Kiro. Les rôles liés à un service sont prédéfinis par AWS et comprennent toutes les autorisations dont Kiro a besoin pour appeler d'autres services AWS en votre nom.
Un rôle lié à un service facilite la configuration de Kiro, car vous n'avez pas à ajouter manuellement les autorisations nécessaires. Kiro définit les autorisations de ses rôles liés à un service et, à moins d'une définition contraire, seul Kiro peut assumer ses rôles. Les autorisations définies comprennent la politique de confiance et la politique d'autorisations, et cette politique d'autorisations ne peut être associée à aucune autre entité IAM.
Vous pouvez supprimer un rôle lié à un service uniquement après avoir d'abord supprimé les ressources associées. Cela protège vos ressources Kiro, car vous ne pouvez pas supprimer par inadvertance l'autorisation d'accéder aux ressources. Pour en savoir plus sur les rôles liés à un service, consultez le Guide de l'utilisateur AWS IAM.
Deux rôles liés à un service sont créés pour vous lorsque vous vous abonnez avec Kiro enterprise :
Kiro utilise le rôle lié à un service nommé AWSServiceRoleForUserSubscriptions. Ce rôle accorde à Kiro les autorisations nécessaires pour accéder à vos ressources IAM Identity Center afin de mettre à jour automatiquement vos abonnements.
Le rôle lié à un service AWSServiceRoleForUserSubscriptions fait confiance aux services suivants pour assumer le rôle :
user-subscriptions.amazonaws.comLa politique d'autorisations de rôle nommée AWSServiceRoleForUserSubscriptions permet à Kiro d'effectuer les actions suivantes sur les ressources spécifiées :
identitystore:DescribeGroup sur *identitystore:DescribeUser sur *identitystore:IsMemberInGroups sur *identitystore:ListGroupMemberships sur *organizations:DescribeOrganization sur *sso:DescribeApplication sur *sso:DescribeInstance sur *sso:ListInstances sur *sso-directory:DescribeUser sur *Vous devez configurer des autorisations pour permettre à vos utilisateurs, groupes ou rôles de créer, modifier ou supprimer un rôle lié à un service. Pour en savoir plus, consultez Autorisations pour les rôles liés à un service dans le Guide de l'utilisateur AWS IAM.
Kiro utilise le rôle lié à un service nommé AWSServiceRoleForAmazonQDeveloper. Ce rôle accorde à Kiro les autorisations nécessaires pour accéder aux données de votre compte afin de calculer la facturation, fournit un accès pour créer et consulter des rapports de sécurité dans Amazon CodeGuru, et émet des données vers CloudWatch.
Le rôle lié à un service AWSServiceRoleForAmazonQDeveloper fait confiance aux services suivants pour assumer le rôle :
q.amazonaws.comLa politique d'autorisations de rôle nommée AWSServiceRoleForAmazonQDeveloper permet à Kiro d'effectuer les actions suivantes sur les ressources spécifiées :
cloudwatch:PutMetricData sur AWS/Q CloudWatch namespaceVous devez configurer des autorisations pour permettre à vos utilisateurs, groupes ou rôles de créer, modifier ou supprimer un rôle lié à un service. Pour en savoir plus, consultez Autorisations pour les rôles liés à un service dans le Guide de l'utilisateur AWS IAM.
Vous n'avez pas besoin de créer manuellement un rôle lié à un service. Lorsque vous créez un profil pour Kiro dans la console de gestion AWS, Kiro crée le rôle lié à un service pour vous. Si vous supprimez ce rôle lié à un service et que vous devez ensuite le recréer, vous pouvez utiliser le même processus pour recréer le rôle dans votre compte.
Vous pouvez également utiliser la console IAM ou l'AWS CLI pour créer un rôle lié à un service avec le nom de service q.amazonaws.com. Pour en savoir plus, consultez Création d'un rôle lié à un service dans le Guide de l'utilisateur AWS IAM. Si vous supprimez ce rôle lié à un service, vous pouvez utiliser le même processus pour créer le rôle de nouveau.
Kiro ne vous permet pas de modifier les rôles liés à un service AWSServiceRoleForUserSubscriptions ou AWSServiceRoleForAmazonQDeveloper. Après avoir créé un rôle lié à un service, vous ne pouvez pas changer le nom du rôle, car diverses entités pourraient y faire référence. Toutefois, vous pouvez modifier la description du rôle à l'aide d'IAM. Pour en savoir plus, consultez Modification d'un rôle lié à un service dans le Guide de l'utilisateur AWS IAM.
Si vous n'avez plus besoin d'utiliser une fonctionnalité ou un service qui nécessite un rôle lié à un service, nous vous recommandons de supprimer ce rôle. Ainsi, vous n'aurez pas d'entité inutilisée qui n'est pas activement surveillée ou maintenue. Toutefois, vous devez nettoyer les ressources de votre rôle lié à un service avant de pouvoir le supprimer manuellement. Utilisez la console IAM, l'AWS CLI ou l'API AWS pour supprimer les rôles liés à un service. Pour en savoir plus, consultez Suppression d'un rôle lié à un service dans le Guide de l'utilisateur AWS IAM.
Vous pouvez utiliser les rôles AWSServiceRoleForUserSubscriptions et AWSServiceRoleForAmazonQDeveloper dans les régions AWS suivantes. Pour en savoir plus sur les régions, consultez Régions et points de terminaison AWS dans la Référence générale AWS.
| Nom de la région | Identité de la région |
|---|---|
| US East (N. Virginia) | us-east-1 |
| Europe (Frankfurt) | eu-central-1 |
Fonctionnement de Kiro avec la gestion des identités et des accès (IAM)