{"componentChunkName":"component---src-templates-blog-js","path":"/ctf/aws-formation/tp8-iam-policies","result":{"data":{"markdownRemark":{"html":"<h1><a href=\"https://aws.amazon.com/fr/iam/faqs/\">IAM FAQ</a></h1>\n<p><strong>Q : Qu'est-ce qu'AWS Identity and Access Management (IAM) ?</strong>\nAWS IAM vous permet de contrôler de façon sécurisée  l'accès aux ressources AWS pour vos utilisateurs et groupes  d'utilisateurs. Vous pouvez créer et gérer des identités d'utilisateurs  (« utilisateurs IAM ») et leur accorder des <a href=\"https://aws.amazon.com/fr/iam/details/manage-permissions/\">autorisations</a> d'accès à vos ressources. Vous pouvez également octroyer des autorisations à des utilisateurs en dehors d'AWS (<a href=\"https://aws.amazon.com/fr/identity/federation/\">utilisateurs fédérés</a>).</p>\n<h2>IAM roles vs IAM policies</h2>\n<h3><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies.html\">Stratégies et autorisations</a></h3>\n<p>policies = stratégies</p>\n<ul>\n<li>Une stratégie est un objet dans AWS qui, lorsqu'il est associé à une identité ou à une ressource, définit les autorisations de ces dernières.</li>\n<li>Chez AWS, les stratégies sont stockées comme document JSON attachés à une identité IAM (user, group of users, or role).</li>\n</ul>\n<p>AWS prend en charge six types de stratégies : </p>\n<ul>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies.html#policies_id-based\">Stratégies basées sur l'identité</a></strong> Attachez des stratégies gérées et en ligne à des identités IAM (utilisateurs, groupes auxquels appartiennent des utilisateurs ou rôles). Les stratégies basées sur l'identité accordent des autorisations à une identité. </li>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies.html#policies_resource-based\">Stratégies basées sur les ressources</a></strong>\nAttachez des stratégies en ligne aux ressources. Les exemples les plus courants de stratégies basées sur les ressources sont les stratégies de compartiment Amazon S3 et les stratégies d'approbation de rôle IAM. Les stratégies basées sur des ressources accordent des autorisations au mandataire qui est spécifié dans la stratégie. Les mandataires peuvent être dans le même compte que la ressource ou dans d'autres comptes.</li>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies.html#policies_bound\">les limites d'autorisations</a></strong>\nUtilisez une stratégie gérée en tant que limite d'autorisations pour une entité IAM (utilisateur ou rôle). Cette stratégie définit les autorisations maximales que les stratégies basées sur une identité peuvent accorder à une entité, mais n'accorde pas d'autorisations. Les limites d'autorisations ne définissent pas les autorisations maximales qu'une stratégie basée sur les ressources peut accorder à une entité.</li>\n<li>les stratégies de contrôle de service Organisations, </li>\n<li>les ACL </li>\n<li>et les stratégies de session</li>\n</ul>\n<h4><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/id_roles_compare-resource-policies.html\">Différence entre les rôles IAM et les stratégies basées sur les ressources</a></h4>\n<p>Contrairement à une stratégie basée sur l'identité, une stratégie basée sur une ressource spécifie qui (quel mandataire) peut accéder à cette ressource. </p>\n<h3><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/id_roles.html\">Rôles IAM</a></h3>\n<p>Un rôle IAM est à la fois une identité et une ressource qui prend en charge les stratégies basées sur les ressources. C'est pour cette raison que vous devez associer une stratégie d'approbation et une stratégie basée sur une identité à un rôle IAM.</p>\n<p>Un rôle IAM est une identité IAM que vous pouvez créer dans votre compte et qui dispose d'autorisations spécifiques. Un rôle IAM est similaire à un utilisateur IAM, car il s'agit d'une identité AWS avec des stratégies d'autorisation qui déterminent ce que l'identité peut et ne peut pas faire dans AWS. En revanche, au lieu d’être associé de manière unique à une personne, un rôle est conçu pour être assumé par tout utilisateur qui en a besoin. En outre, un rôle ne dispose pas d'informations d'identification standard à long-terme comme un mot de passe ou des clés d'accès associées. Au lieu de cela, lorsque vous adoptez un rôle, il vous fournit des informations d'identification de sécurité temporaires pour votre session de rôle.</p>\n<p>Vous pouvez utiliser des rôles pour déléguer l'accès à des utilisateurs, des applications ou des services qui n'ont normalement pas accès à vos ressources AWS. Par exemple, vous pouvez accorder aux utilisateurs de votre compte AWS l'accès à des ressources dont ils ne disposent généralement pas, ou accorder aux utilisateurs d'un compte AWS l'accès aux ressources d'un autre compte. Il est également possible d'autoriser une application mobile à utiliser des ressources AWS, mais sans pour autant intégrer de clés AWS dans l'application (où leur rotation peut être difficile et d'où les utilisateurs peuvent éventuellement les extraire). Dans certains cas, vous pouvez vouloir accorder l'accès à AWS à des utilisateurs qui ont déjà des identités définies en dehors d'AWS, par exemple dans votre annuaire d'entreprise. Ou, vous pouvez accorder l'accès à votre compte à des tiers afin de leur permettre de réaliser un audit de vos ressources. </p>\n<p><strong>Q : Qu'est-ce qu'un rôle IAM ?</strong>\nUn rôle est une entité IAM qui définit un ensemble d'<a href=\"https://aws.amazon.com/fr/iam/details/manage-permissions/\">autorisations</a> permettant de demander des services AWS. Les rôles IAM ne sont associés à aucun groupe ou utilisateur spécifique. Ces rôles sont endossés par  des entités de confiance, telles que des utilisateurs IAM, des  applications ou des services AWS tels qu'EC2.</p>\n<p><strong>Q : Comment endosser un rôle IAM ?</strong>\nPour endosser un rôle IAM, vous devez appeler les API AssumeRole d'AWS Security Token Service  (<strong>STS</strong>) (c'est-à-dire, AssumeRole, AssumeRoleWithWebIdentity et  AssumeRoleWithSAML). Ces API retournent un ensemble d'informations  d'identification de sécurité temporaires que vous pouvez utiliser pour  signer des demandes aux API du service AWS.</p>\n<p><strong>Q : Qu'est-ce qu'un rôle lié à un service ?</strong>\nUn <a href=\"https://docs.aws.amazon.com/console/iam/service-linked-role\">rôle lié à un service</a> est un type de rôle qui est lié à un service AWS (appelé service lié),  de telle sorte que seul le service lié peut endosser ce rôle. Avec ces  rôles, vous pouvez déléguer des autorisations à des services AWS afin  qu'ils créent et gèrent des ressources AWS pour vous.</p>\n<h4>creation of policy</h4>\n<p> <a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor\">Création de stratégies dans l'onglet JSON</a></p>\n<h2><a href=\"https://stackoverflow.com/questions/46199680/difference-between-iam-role-and-iam-user-in-aws\">IAM user vs IAM role</a></h2>\n<p>IAM user or IAM role = principal</p>\n<h3>IAM user</h3>\n<p><strong>Qu'est-ce qu'un utilisateur ?</strong>\nUn utilisateur est une identité unique reconnue par les services et les applications AWS. Semblable à un identifiant de connexion dans un système d'exploitation comme Windows ou UNIX, un utilisateur possède un nom unique et peut s'identifier à l'aide d'informations d'identification de sécurité courantes, comme le mot de passe ou une clé d'accès. Un utilisateur peut être un individu, un système ou une application ayant besoin d'accéder aux services AWS. IAM prend en charge les utilisateurs gérés dans le système de gestion des identités d'AWS (appelés « utilisateurs IAM »), et vous permet aussi d'accorder l'accès aux ressources AWS aux utilisateurs gérés en dehors d'AWS dans votre répertoire général (appelés « utilisateurs fédérés »). </p>\n<p><strong>Comment sont gérés les utilisateurs IAM ?</strong>\nIAM prend en charge plusieurs méthodes pour :</p>\n<ul>\n<li>créer et gérer des utilisateurs IAM ;</li>\n<li>créer et gérer des groupes IAM ;</li>\n<li>gérer des informations d'identification de sécurité des utilisateurs ;</li>\n<li>créer et gérer des stratégies pour accorder l'accès à des services et ressources AWS.</li>\n</ul>\n<h3>Différences</h3>\n<p><strong>Quelle est la différence entre un rôle IAM et un utilisateur IAM ?</strong>\nUn utilisateur IAM dispose d'informations d'identification à long terme et peut interagir directement avec les services AWS. Un rôle IAM ne dispose pas d'informations d'identification et ne peut pas envoyer directement de requêtes aux services AWS. Les rôles IAM sont normalement \"endossés\" par des entités autorisées, telles que des utilisateurs IAM, des applications ou un service AWS tel qu'EC2.</p>\n<p><strong>Quand faire appel à un utilisateur IAM, un groupe IAM ou un rôle IAM ?</strong>\nUn utilisateur IAM dispose d'informations d'identification à long terme et peut interagir directement avec les services AWS. Un groupe IAM est principalement un outil pratique permettant de gérer le même jeu d'autorisations pour un ensemble d'utilisateurs IAM. Un rôle IAM est une entité AWS Identity and Access Management (IAM) disposant d'autorisations permettant d'envoyer des requêtes aux services AWS. Les rôles IAM ne peuvent pas envoyer directement des requêtes aux services AWS. Ils sont normalement \"endossés\" par des entités autorisées telles que les utilisateurs IAM, les applications ou les services AWS tels qu'EC2. Utilisez les rôles IAM pour déléguer l'accès au sein ou entre les comptes AWS. </p>\n<h2><a href=\"https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key\">KMS policy</a></h2>\n<p>KMS (ressource propre) != IAM</p>\n<h3>Attributes :</h3>\n<ul>\n<li>\n<p>arn = identifiant global pour AWS</p>\n<ul>\n<li>structure = arn:nomservice:nomcompte:region:id_key </li>\n</ul>\n</li>\n<li>id_key = identifiant local pour notre structure cloud</li>\n</ul>\n<h3>Ressources</h3>\n<ul>\n<li><a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role\">https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role</a></li>\n<li><a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html\">https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html</a></li>\n<li><a href=\"https://docs.aws.amazon.com/sns/latest/dg/sns-using-identity-based-policies.html#ExamplePolicies_SNS\">https://docs.aws.amazon.com/sns/latest/dg/sns-using-identity-based-policies.html#ExamplePolicies_SNS</a></li>\n<li><a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html\">https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html</a></li>\n</ul>\n<h2><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor\">Création de stratégies de rôle IAM (console)</a></h2>\n<h3>Console AWS</h3>\n<p>Vous pouvez créer une stratégie gérée par le client dans AWS Management Console à                                    l'aide de l'une des méthodes suivantes :                                 </p>\n<ul>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor\">JSON</a></strong>\nColler et personnaliser un <a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_examples.html\">exemple de stratégie basée sur l'identité</a> publié.</li>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-visual-editor\">Éditeur visuel</a></strong>\nConstruire intégralement une nouvelle stratégie dans l'éditeur visuel. Si vous utilisez l'éditeur visuel, vous n'avez pas besoin de comprendre la syntaxe JSON.</li>\n<li><strong><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-copy\">Importation</a></strong>\nImporter et personnaliser une stratégie gérée depuis votre compte. Vous pouvez importer une stratégie gérée par AWS ou une stratégie gérée par le client que vous avez créée précédemment.</li>\n</ul>\n<p>Dans la partie \"IAM\" > \"Policies\" :  simulation de la création d'une nouvelle policy car AWS fournit une interface :</p>\n<ul>\n<li>où tu peux spécifier pour quel service tu es en train de définir une policy </li>\n<li>et qui te propose la liste des différentes actions ainsi que des liens directement vers la documentation; </li>\n<li>tu peux ensuite visualiser la représentation JSON de ladite policy.</li>\n</ul>\n<h3><a href=\"https://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/key-policies.html\">Présentation des stratégies de clé</a></h3>\n<p>Un document de stratégie de clé ne doit pas comporter plus de 32 Ko (32 768 octets). Les documents de stratégie de clé partagent une syntaxe JSON commune avec les autres stratégies d'autorisation dans AWS ; ils ont la structure de base suivante :</p>\n<pre><code class=\"language-json\">{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [{\n    \"Sid\": \"statement identifier\",\n    \"Effect\": \"effect\",\n    \"Principal\": \"principal\",\n    \"Action\": \"action\",\n    \"Resource\": \"resource\",\n    \"Condition\": {\"condition operator\": {\"condition context key\": \"context key value\"}}\n  }]\n}\n</code></pre>\n<p>Un document de stratégie de clé doit avoir un élément <code>Version</code>. Nous vous recommandons de définir la version sur <code>2012-10-17</code> (la dernière version). En outre, un document de stratégie de clé doit avoir une ou plusieurs instructions, et chaque instruction peut comprendre jusqu'à six éléments :</p>\n<ul>\n<li><strong>SID</strong> – (facultatif) Le SID est un identifiant de déclaration, une chaîne arbitraire que vous pouvez utiliser pour identifier la déclaration.</li>\n<li><strong>Effet</strong> – (requis)  L'effet spécifie s'il convient d'accorder ou de refuser les  autorisations figurant dans la  déclaration de stratégie. L'effet doit être <em>Allow</em> ou <em>Deny</em>. Si vous n'autorisez pas  explicitement l'accès à une clé CMK, l'accès est implicitement refusé. Vous pouvez explicitement  refuser l'accès à une clé CMK. Vous pouvez le faire afin de vous assurer qu'un  utilisateur n'y a pas accès, même si une stratégie autorise l'accès.</li>\n<li>\n<p><strong>Mandataire</strong> – (obligatoire) Le <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying\">mandataire</a> est l'identité qui obtient les autorisations figurant dans la  déclaration de stratégie. Vous pouvez spécifier des  comptes AWS (racine), des utilisateurs IAM, des rôles IAM et certains services AWS en tant que mandataires dans une stratégie de clé. Les groupes IAM ne sont pas des  mandataires valides. </p>\n<ul>\n<li>Note : Ne définissez pas le  mandataire sur un astérisque (*) dans une déclaration de stratégie de clé accordant des  autorisations.</li>\n</ul>\n</li>\n<li><strong>Action</strong> – (requis) Les actions spécifient les opérations d'API à autoriser ou refuser. Par  exemple, l'action <code>kms:Encrypt</code> correspond à l'opération AWS KMS <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html\">Chiffrer</a>. Vous pouvez répertorier plusieurs actions dans une instruction de stratégie. Pour plus d'informations, consultez <a href=\"https://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/kms-api-permissions-reference.html\">Référence des autorisations d'API AWS KMS</a>.</li>\n<li><strong>Ressource</strong> – (obligatoire) Dans une stratégie de clé, vous utilisez <code>\"*\"</code> pour la ressource, ce qui signifie « cette clé CMK ». Une stratégie de clé s'applique uniquement à la clé CMK à laquelle elle est attachée.</li>\n<li>\n<p><strong>Condition</strong> –  (facultatif) Les conditions spécifient les exigences qui doivent être  satisfaites pour qu'une stratégie de  clé prenne effet. Les conditions permettent à AWS d'évaluer le contexte d'une demande  d'API afin de déterminer si la déclaration de stratégie  s'applique ou non. Pour  plus d'informations, consultez <a href=\"https://docs.aws.amazon.com/fr_fr/kms/latest/developerguide/policy-conditions.html\">Utilisation des conditions de stratégie</a>.</p>\n<ul>\n<li><a href=\"https://docs.aws.amazon.com/fr_fr/AmazonS3/latest/dev/amazon-s3-policy-keys.html\">Clés de condition Amazon S3</a></li>\n</ul>\n</li>\n</ul>\n<h3><a href=\"https://docs.aws.amazon.com/fr_fr/general/latest/gr/root-vs-iam.html\">Informations d'identification Utilisateur racine d'un compte AWS par rapport aux informations d'identification utilisateur IAM</a></h3>\n<h3><a href=\"https://docs.aws.amazon.com/fr_fr/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow\">Logique d'évaluation des stratégies</a></h3>","frontmatter":{"date":"July 31, 2020","path":"ctf/aws-formation/tp8-iam-policies","title":"TP8 - IAM - Roles - Policies","tags":["cloud","ec2","aws"],"categorie":"ctf","thumbnail":"/assets/alex-machado-80sv993luki-unsplash.jpg"},"fields":{"readingTime":{"text":"10 min read"}}},"file":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAED/9oADAMBAAIQAxAAAAGFz11jKaIn/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAECERMSMf/aAAgBAQABBQLm3gxwaJTxe1i8/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECElH/2gAIAQMBAT8BUdKn/8QAFhEBAQEAAAAAAAAAAAAAAAAAABEB/9oACAECAQE/Abqv/8QAGhAAAQUBAAAAAAAAAAAAAAAAAQACEBESIv/aAAgBAQAGPwJckOjObVBtR//EABwQAQACAgMBAAAAAAAAAAAAAAEAETFBIWFxkf/aAAgBAQABPyEVB9ih2jUSxfkFQDkWX4Ju5grU/9oADAMBAAIAAwAAABDjD//EABYRAQEBAAAAAAAAAAAAAAAAAAEAIf/aAAgBAwEBPxAA1M//xAAWEQEBAQAAAAAAAAAAAAAAAAABIRD/2gAIAQIBAT8QWYTP/8QAGhABAQEAAwEAAAAAAAAAAAAAAREAIUFxwf/aAAgBAQABPxAYkFlcFzRnCFCH3zCCggiKI5gk6hL1lpwEhs0zEABv/9k=","aspectRatio":1.4970059880239521,"src":"/static/11cdcb302d032fa2db3a46428a8f74c9/a7715/alex-machado-80sv993luki-unsplash.jpg","srcSet":"/static/11cdcb302d032fa2db3a46428a8f74c9/8f7df/alex-machado-80sv993luki-unsplash.jpg 250w,\n/static/11cdcb302d032fa2db3a46428a8f74c9/0f3a1/alex-machado-80sv993luki-unsplash.jpg 500w,\n/static/11cdcb302d032fa2db3a46428a8f74c9/a7715/alex-machado-80sv993luki-unsplash.jpg 1000w,\n/static/11cdcb302d032fa2db3a46428a8f74c9/37d86/alex-machado-80sv993luki-unsplash.jpg 1500w,\n/static/11cdcb302d032fa2db3a46428a8f74c9/a41d1/alex-machado-80sv993luki-unsplash.jpg 2000w,\n/static/11cdcb302d032fa2db3a46428a8f74c9/6a059/alex-machado-80sv993luki-unsplash.jpg 6000w","sizes":"(max-width: 1000px) 100vw, 1000px"}}}},"pageContext":{"slug":"ctf/aws-formation/tp8-iam-policies","featuredImage":"alex-machado-80sv993luki-unsplash.jpg"}}}