Créez des politiques d'approbation pour l'accès aux just-in-time nœuds avec Amazon Q - AWS Systems Manager

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.

Créez des politiques d'approbation pour l'accès aux just-in-time nœuds avec Amazon Q

L'utilisation d'Amazon Q Developer pour la ligne de commande fournit des conseils et une assistance sur les différents aspects du développement logiciel. Pour l'accès aux just-in-time nœuds, Amazon Q vous aide à créer des politiques d'approbation en générant et en mettant à jour le code des politiques, en analysant les déclarations de politique, etc. Les informations suivantes décrivent comment créer des politiques d'approbation à l'aide d'Amazon Q pour la ligne de commande.

Identifier votre cas d'utilisation

La première étape de la création de politiques d'approbation consiste à définir clairement votre cas d'utilisation. Par exemple, dans votre organisation, vous souhaiterez peut-être approuver automatiquement les demandes d'accès aux nœuds dotés d'une Environment:Testing balise. Vous pouvez également refuser explicitement les approbations automatiques aux nœuds dotés d'une Environment:Production balise si l'identifiant d'un employé commence TEMP par. Pour les nœuds dotés d'une Tier:Database balise, vous pouvez avoir besoin de deux niveaux d'approbations manuelles.

Quel que soit le scénario, vous pouvez préférer une politique ou une condition à une autre. Par conséquent, nous vous recommandons de définir clairement les comportements politiques que vous souhaitez adopter afin de déterminer quelles déclarations correspondent le mieux à votre cas d'utilisation et à vos préférences.

Configurer votre environnement de développement.

Installez Amazon Q pour la ligne de commande où vous souhaitez développer vos politiques d'approbation. Pour plus d'informations sur l'installation d'Amazon Q pour la ligne de commande, consultez la section Installation d'Amazon Q pour la ligne de commande dans le manuel Amazon Q Developer User Guide.

Nous recommandons également d'installer le serveur MCP pour la AWS documentation. Ce serveur MCP connecte Amazon Q pour la ligne de commande aux ressources de documentation les plus récentes. Pour plus d'informations sur l'utilisation de MCP avec Amazon Q pour la ligne de commande, consultez la section Utilisation de MCP avec Amazon Q Developer dans le manuel Amazon Q Developer User Guide.

Pour plus d'informations sur le serveur de AWS documentation MCP, consultez la section Serveur de AWS documentation MCP.

Installez et configurez le AWS CLI, si ce n'est pas déjà fait. Pour plus d'informations, voir Installation ou mise à jour de la dernière version du AWS CLI.

Élaborer le contenu de la politique d'approbation

Une fois votre cas d'utilisation identifié et l'environnement configuré, vous êtes prêt à développer le contenu de vos politiques. Votre cas d'utilisation et vos préférences dicteront en grande partie les types de politiques d'approbation et de déclarations que vous utiliserez.

Si vous ne savez pas comment utiliser une politique particulière ou si vous avez besoin de plus d'informations sur le schéma d'une stratégie, consultez les rubriques Créez des politiques d'approbation pour vos nœuds et suivantes. Ces rubriques expliquent en détail comment les politiques sont évaluées et fournissent des exemples de déclarations pratiques.

La procédure suivante explique comment créer des politiques d'approbation avec Amazon Q pour la ligne de commande.

Note

Amazon Q Developer utilise l'IA générative. Vous devrez peut-être vérifier les réponses. Consultez la politique en matière d'IA AWS responsable.

Pour créer une politique d'approbation à l'aide d'Amazon Q pour la ligne de commande
  1. Ouvrez votre terminal et démarrez une session avec Amazon Q.

    $ q chat
  2. Entrez une invite et décrivez le type de déclaration de politique que vous souhaitez créer. Par exemple, en utilisant le scénario précédent pour une politique d'approbation, vous pouvez saisir l'invite suivante :

    Create a Cedar policy statement that allows a principal to use the “getTokenForInstanceAccess" action for a resource 
    that has a tag key “Environment” and tag value of “Testing”. Use the following example statement for reference to verify the syntax.
    
    permit (
        principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE",
        action == AWS::SSM::Action::"getTokenForInstanceAccess",
        resource
    )
    when {
        principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
    };
    
    The Cedar policy statement you create must be valid. Validate the Cedar statement using the AWS documentation provided for just-in-time node access policy statement structure and make sure you abide by the schema.
  3. La saisie de cet exemple d'invite a produit le résultat suivant :

    Based on the AWS documentation for Cedar policy statements and the examples provided, I'll create a valid Cedar policy 
    statement that allows a principal to use the "getTokenForInstanceAccess" action for resources with the tag key "Environment" and tag value "Testing".
                                
    Here's the Cedar policy statement:
    
    permit (
        principal,
        action == AWS::SSM::Action::"getTokenForInstanceAccess",
        resource
    )
    when {
        resource.hasTag("Environment") &&
        resource.getTag("Environment") == "Testing"
    };
    
    
    This policy statement:
    1. Uses the permit effect to allow access
    2. Applies to any principal (since no specific principal is defined)
    3. Specifically targets the "getTokenForInstanceAccess" action
    4. Applies to resources that have a tag with key "Environment" and value "Testing"
    5. Uses the proper syntax for the condition clause with the hasTag() and getTag() operators
    
    The statement follows the Cedar policy language structure as documented in the AWS Systems Manager documentation for just-in-time node access policies.
  4. Collez la déclaration de politique dans un nouveau fichier Cedar pour valider la syntaxe. Vous pouvez également valider la déclaration en utilisant le terrain de jeu Cedar.

  5. Après avoir validé la déclaration, enregistrez le fichier Cedar.

  6. Depuis votre terminal, exécutez la AWS CLI commande suivante pour créer un document SSM en utilisant le contenu de votre politique. Avant d'utiliser des politiques d'approbation dans un environnement de production, testez vos politiques d'approbation avec un sous-ensemble d'identités et de nœuds dans un Compte AWS et Région AWS.

    Note

    Pour une politique d'approbation automatique, le nom du document doit êtreSSM-JustInTimeAccessAutoApprovalPolicy. Il ne peut y avoir qu'une seule politique d'approbation automatique par Compte AWS et Région AWS. Pour une politique de refus d'accès, le nom du document doit être. SSM-JustInTimeAccessDenyAccessOrgPolicy Il ne peut y avoir qu'une seule politique de refus d'accès par AWS Organizations organisation, et la politique doit être créée dans le compte d'administrateur délégué de Systems Manager. Les contraintes de dénomination pour les politiques d'approbation manuelle sont les mêmes que celles des autres documents SSM. Pour de plus amples informations, veuillez consulter CreateDocument.

    Linux & macOS
    aws ssm create-document \ --content file://path/to/file/policyContent.cedar \ --name "SSM-JustInTimeAccessAutoApprovalPolicy" \ --document-type "AutoApproval"
    Windows
    aws ssm create-document ^ --content file://C:\path\to\file\policyContent.cedar ^ --name "SSM-JustInTimeAccessAutoApprovalPolicy" ^ --document-type "AutoApproval"
    PowerShell
    $cedar = Get-Content -Path "C:\path\to\file\policyContent.cedar" | Out-String New-SSMDocument ` -Content $cedar ` -Name "SSM-JustInTimeAccessAutoApprovalPolicy" ` -DocumentType "AutoApproval"