AWS CodeStar Politiques et autorisations au niveau du projet - AWS CodeStar

Le 31 juillet 2024, Amazon Web Services (AWS) cessera de prendre en charge la création et la visualisation de AWS CodeStar projets. Après le 31 juillet 2024, vous ne pourrez plus accéder à la AWS CodeStar console ni créer de nouveaux projets. Toutefois, les AWS ressources créées par AWS CodeStar, y compris vos référentiels sources, vos pipelines et vos versions, ne seront pas affectées par cette modification et continueront de fonctionner. AWS CodeStar Les connexions et AWS CodeStar les notifications ne seront pas affectées par cette interruption.

 

Si vous souhaitez suivre le travail, développer du code et créer, tester et déployer vos applications, Amazon CodeCatalyst propose un processus de démarrage rationalisé et des fonctionnalités supplémentaires pour gérer vos projets logiciels. En savoir plus sur les fonctionnalités et les tarifs d'Amazon CodeCatalyst.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS CodeStar Politiques et autorisations au niveau du projet

Lorsque vous créez un projet, vous AWS CodeStar créez les rôles et les politiques IAM dont vous avez besoin pour gérer les ressources de votre projet. Les stratégies se divisent en trois catégories :

  • Des stratégies IAM pour les membres de l'équipe de projet.

  • Des stratégies IAM pour les rôles de travail.

  • Des stratégies IAM pour le rôle d'exécution.

Des stratégies IAM pour les membres de l'équipe.

Lorsque vous créez un projet, vous AWS CodeStar créez trois politiques gérées par le client pour l'accès du propriétaire, du contributeur et du spectateur au projet. Tous les AWS CodeStar projets contiennent des politiques IAM pour ces trois niveaux d'accès. Ces niveaux d'accès sont spécifiques au projet et définis par une politique gérée par IAM portant un nom standard, où project-id est l'identifiant du AWS CodeStar projet (par exemple,) : my-first-projec

  • CodeStar_project-id_Owner

  • CodeStar_project-id_Contributor

  • CodeStar_project-id_Viewer

Important

Ces politiques sont susceptibles d'être modifiées par AWS CodeStar. Elles ne doivent pas être modifiées manuellement. Si vous souhaitez ajouter ou modifier des autorisations, associez des politiques supplémentaires à l'utilisateur IAM.

Au fur et à mesure que vous ajoutez des membres de l'équipe (utilisateurs IAM) pour le projet et choisissez leurs niveaux d'accès, la stratégie est attachée à l'utilisateur IAM, en accordant à l'utilisateur l'ensemble d'autorisations appropriées pour agir sur les ressources de projet. Dans la plupart des cas, il n'est pas nécessaire de joindre ou de gérer directement des politiques ou des autorisations dans IAM. Il n'est pas recommandé d'associer manuellement une politique de niveau d' AWS CodeStar accès à un utilisateur IAM. Si cela est absolument nécessaire, en complément d'une politique de niveau d' AWS CodeStar accès, vous pouvez créer vos propres politiques gérées ou intégrées pour appliquer votre propre niveau d'autorisations à un utilisateur IAM.

Les stratégies sont étroitement attribuées à des ressources de projet et des actions spécifiques. Au fur et à mesure que de nouvelles ressources sont ajoutées à l'infrastructure, AWS CodeStar tente de mettre à jour les politiques des membres de l'équipe afin d'inclure les autorisations d'accès à la nouvelle ressource, s'il s'agit de l'un des types de ressources pris en charge.

Note

Les politiques relatives aux niveaux d'accès dans un AWS CodeStar projet s'appliquent uniquement à ce projet. Cela permet de garantir que les utilisateurs peuvent uniquement voir et interagir avec les AWS CodeStar projets pour lesquels ils sont autorisés, au niveau déterminé par leur rôle. Seuls les utilisateurs qui créent AWS CodeStar des projets doivent se voir appliquer une politique autorisant l'accès à toutes les AWS CodeStar ressources, quel que soit le projet.

Toutes les politiques relatives AWS CodeStar aux niveaux d'accès varient en fonction des AWS ressources associées au projet auquel les niveaux d'accès sont associés. Contrairement à d'autres services AWS , ces stratégies sont personnalisées lorsque le projet est créé et mises à jour à mesure que les ressources du projet évoluent. Par conséquent, il n'existe pas de stratégie unique et canonique gérée par le propriétaire, le participant ou le lecteur.

AWS CodeStar Politique relative au rôle du propriétaire

La politique gérée par le CodeStar_project-id_Owner client permet à un utilisateur d'effectuer toutes les actions du AWS CodeStar projet sans aucune restriction. Il s'agit de la seule stratégie qui permet à un utilisateur d'ajouter ou de supprimer des membres de l'équipe. Le contenu de la stratégie varie selon les ressources associées au projet. Veuillez consulter AWS CodeStar Politique relative au rôle du propriétaire pour obtenir un exemple.

Un utilisateur IAM doté de cette politique peut effectuer toutes les AWS CodeStar actions du projet, mais contrairement à un utilisateur IAM doté de cette AWSCodeStarFullAccess politique, il ne peut pas créer de projets. L'étendue de l'codestar:*autorisation est limitée à une ressource spécifique (le AWS CodeStar projet associé à cet ID de projet).

AWS CodeStar Politique relative aux rôles des contributeurs

La stratégie CodeStar_project-id_Contributor gérée par le client permet à un utilisateur de participer au projet et d'en modifier le tableau de bord, mais elle ne l'autorise pas à ajouter ou à supprimer des membres de l'équipe. Le contenu de la stratégie varie selon les ressources associées au projet. Veuillez consulter Stratégie de rôle gérée par le participant AWS CodeStar pour obtenir un exemple.

AWS CodeStar Politique relative au rôle du spectateur

La stratégie CodeStar_project-id_Viewer gérée par le client permet à un utilisateur d'afficher un projet dans AWS CodeStar, mais pas d'en modifier les ressources ni d'ajouter ou supprimer des membres de l'équipe. Le contenu de la stratégie varie selon les ressources associées au projet. Veuillez consulter AWS CodeStar Politique relative au rôle du spectateur pour obtenir un exemple.

Stratégies IAM pour les rôles de travail

Si vous créez votre AWS CodeStar projet après le 6 décembre 2018 PDT, AWS CodeStar crée deux rôles de travailleur, CodeStar-project-id-ToolChain etCodeStar-project-id-CloudFormation. Un rôle de travailleur est un rôle IAM spécifique à un projet qui est AWS CodeStar créé pour être transféré à un service. Il accorde des autorisations afin que le service puisse créer des ressources et exécuter des actions dans le contexte de votre AWS CodeStar projet. Le rôle de travailleur de la chaîne d'outils entretient une relation de confiance établie avec des services de chaîne d'outils tels que CodeBuild CodeDeploy, et. CodePipeline Les membres de l'équipe de projet (propriétaires et participants) bénéficient d'un accès pour transmettre le rôle de travail à des services en aval de confiance. Pour voir un exemple de déclaration de stratégie en ligne pour ce rôle, consultez AWS CodeStar Politique sur le rôle des travailleurs de la chaîne d'outils (après le 6 décembre 2018 PDT).

Le rôle de CloudFormation travailleur inclut les autorisations pour certaines ressources prises en charge par AWS CloudFormation, ainsi que les autorisations permettant de créer des utilisateurs, des rôles et des politiques IAM dans votre pile d'applications. Il a également établi une relation de confiance avec AWS CloudFormation. Pour atténuer les risques d'augmentation des privilèges et d'actions destructrices, la politique des AWS CloudFormation rôles inclut une condition qui exige la limite d'autorisations spécifique au projet pour chaque entité IAM (utilisateur ou rôle) créée dans la pile d'infrastructure. Pour voir un exemple de déclaration de stratégie en ligne pour ce rôle, consultez AWS CloudFormation Politique relative au rôle des travailleurs.

Pour les CodeStar projets AWS créés avant le 6 décembre 2018, PDT AWS CodeStar crée des rôles de travail individuels pour les ressources de la chaîne d'outils telles que CodePipeline CodeBuild, et les CloudWatch événements, et crée également un rôle de travail pour AWS CloudFormation lequel un ensemble limité de ressources est pris en charge. Chacun de ces rôles dispose d'une relation d'approbation établie avec le service correspondant. Les membres de l'équipe de projet (propriétaires et participants) et certains autres rôles de travail bénéficient d'un accès pour transmettre le rôle de travail à des services en aval de confiance. Les autorisations pour les rôles de travail sont définis dans une stratégie en ligne associée à un ensemble basique d'actions que le rôle peut effectuer sur un ensemble de ressources de projet. Ces autorisations sont statiques. Elles comprennent des autorisations pour des ressources qui sont incluses dans le projet lors de sa création, mais ne sont pas mises à jour lorsque de nouvelles ressources sont ajoutées au projet. Pour des exemples de ces déclarations de stratégies, consultez :

Stratégie IAM pour le rôle d'exécution

Pour les projets créés après le 6 décembre 2018 PDT, AWS CodeStar crée un rôle d'exécution générique pour l'exemple de projet dans votre pile d'applications. Ce rôle est limité aux ressources de projet employant la stratégie de limite d'autorisations. Au fur et à mesure que vous développez l'exemple de projet, vous pouvez créer des rôles IAM supplémentaires, et la politique des AWS CloudFormation rôles exige que ces rôles soient délimités à l'aide de la limite d'autorisation afin d'éviter une escalade des privilèges. Pour plus d’informations, consultez Ajoutez un rôle IAM à un projet.

Pour les projets Lambda créés avant le 6 décembre 2018, PDT crée AWS CodeStar un rôle d'exécution Lambda associé à une politique intégrée avec des autorisations permettant d'agir sur les ressources de la pile de projets. AWS SAM Au fur et à mesure que de nouvelles ressources sont ajoutées au modèle SAM, AWS CodeStar tente de mettre à jour la politique de rôle d'exécution Lambda afin d'inclure les autorisations d'accès à la nouvelle ressource s'il s'agit de l'un des types de ressources pris en charge.

Limite des autorisations IAM

Après le 6 décembre 2018 PDT, lorsque vous créez un projet, AWS CodeStar crée une politique gérée par le client et attribue cette politique comme limite d'autorisations IAM aux rôles IAM dans le projet. AWS CodeStar exige que toutes les entités IAM créées dans la pile d'applications disposent d'une limite d'autorisations. Une limite des autorisations contrôle les autorisations maximales du rôle, mais ne fournit pas d'autorisations au rôle. Les stratégies d'autorisations définissent les autorisations pour le rôle. Cela signifie que, quel que soit le nombre d'autorisations supplémentaires ajoutées à un rôle, quiconque utilise le rôle ne peut pas exécuter plus que les actions incluses dans la limite d'autorisation. Pour plus d'informations sur la manière dont les politiques d'autorisations et les limites d'autorisations sont évaluées, consultez la section Logique d'évaluation des politiques dans le guide de l'utilisateur IAM.

AWS CodeStar utilise une limite d'autorisation spécifique au projet pour empêcher l'augmentation des privilèges vers des ressources extérieures au projet. La limite CodeStar des autorisations AWS inclut les ARN pour les ressources du projet. Pour obtenir un exemple de cette déclaration de stratégie, veuillez consulter Politique relative CodeStar aux limites des autorisations AWS.

La CodeStar transformation AWS met à jour cette politique lorsque vous ajoutez ou supprimez une ressource prise en charge dans le projet via l'application stack (template.yml).

Ajout d'une limite d'autorisation IAM aux projets existants

Si vous avez un CodeStar projet AWS créé avant le 6 décembre 2018 PDT, vous devez ajouter manuellement une limite d'autorisation aux rôles IAM du projet. Comme meilleure pratique, nous vous recommandons d'utiliser une limite spécifique au projet qui comprend uniquement les ressources du projet pour éviter toute remontée des privilèges vers les ressources externes au projet. Suivez ces étapes pour utiliser la limite d'autorisation CodeStar gérée par AWS qui est mise à jour au fur et à mesure de l'évolution du projet.

  1. Connectez-vous à la AWS CloudFormation console et recherchez le modèle pour la pile de chaînes d'outils dans votre projet. Ce modèle est nommé awscodestar-project-id.

  2. Choisissez le modèle, Actions, puis Afficher/Modifier un modèle dans Designer.

  3. Recherchez la section Resources et incluez l'extrait de code suivant en haut de la section.

    PermissionsBoundaryPolicy: Description: Creating an IAM managed policy for defining the permissions boundary for an AWS CodeStar project Type: AWS::IAM::ManagedPolicy Properties: ManagedPolicyName: !Sub 'CodeStar_${ProjectId }_PermissionsBoundary' Description: 'IAM policy to define the permissions boundary for IAM entities created in an AWS CodeStar project' PolicyDocument: Version: '2012-10-17' Statement: - Sid: '1' Effect: Allow Action: ['*'] Resource: - !Sub 'arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/awscodestar-${ProjectId}-*'

    Vous aurez peut-être besoin d'autorisations IAM supplémentaires pour mettre à jour la pile depuis la AWS CloudFormation console.

  4. (Facultatif) Si vous souhaitez créer des rôles IAM spécifiques à l'application, procédez comme suit. À partir de la console IAM, mettez à jour la politique intégrée associée au AWS CloudFormation rôle de votre projet afin d'inclure l'extrait de code suivant. Vous aurez peut-être besoin de ressources IAM supplémentaires pour mettre à jour la politique.

    { "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::{AccountId}:role/CodeStar-{ProjectId}*", "Effect": "Allow" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:DeleteRole", "iam:DeleteUser" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRolePolicy", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPermissionsBoundary", "iam:PutRolePermissionsBoundary" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::{AccountId}:policy/CodeStar_{ProjectId}_PermissionsBoundary" } }, "Effect": "Allow" }
  5. Appliquez une modification dans le pipeline de votre projet afin qu'AWS mette CodeStar à jour la limite des autorisations avec les autorisations appropriées.

Pour plus d’informations, consultez Ajoutez un rôle IAM à un projet.