

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.

# Exemples de politiques basées sur l'identité pour AWS CodeArtifact
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ou modifier les ressources CodeArtifact. Pour octroyer aux utilisateurs des autorisations d’effectuer des actions sur les ressources dont ils ont besoin, un administrateur IAM peut créer des politiques IAM.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez [Création de politiques IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dans le *Guide de l’utilisateur IAM*.

Pour plus de détails sur les actions et les types de ressources définis par CodeArtifact, y compris le format de ARNs pour chacun des types de ressources, voir [Actions, ressources et clés de condition AWS CodeArtifact](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodeartifact.html) dans la *référence d'autorisation de service*.

**Topics**
+ [Bonnes pratiques en matière de politiques](#security_iam_service-with-iam-policy-best-practices)
+ [Utilisation de la CodeArtifact console](#security_iam_id-based-policy-examples-console)
+ [Politiques gérées (prédéfinies) par AWS pour AWS CodeArtifact](#managed-policies)
+ [Autoriser un utilisateur à consulter ses propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Autoriser un utilisateur à obtenir des informations sur les référentiels et les domaines](#security_iam_id-based-policy-examples-repos-and-domains)
+ [Autoriser un utilisateur à obtenir des informations sur des domaines spécifiques](#security_iam_id-based-policy-examples-specific-domains)
+ [Autoriser un utilisateur à obtenir des informations sur des référentiels spécifiques](#security_iam_id-based-policy-examples-specific-repos)
+ [Limiter la durée du jeton d'autorisation](#limit-token-duration)

## Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer CodeArtifact des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez [politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation de la CodeArtifact console
<a name="security_iam_id-based-policy-examples-console"></a>

Pour accéder à la AWS CodeArtifact console, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails CodeArtifact des ressources de votre Compte AWS. Si vous créez une politique basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette politique.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API qu’ils tentent d’effectuer.

Pour garantir que les utilisateurs et les rôles peuvent toujours utiliser la CodeArtifact console, associez également la politique `AWSCodeArtifactAdminAccess` ou la politique `AWSCodeArtifactReadOnlyAccess` AWS gérée aux entités. Pour plus d’informations, consultez [Ajout d’autorisations à un utilisateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dans le *Guide de l’utilisateur IAM*.

## Politiques gérées (prédéfinies) par AWS pour AWS CodeArtifact
<a name="managed-policies"></a>

AWS répond à de nombreux cas d'utilisation courants en fournissant des politiques IAM autonomes créées et administrées par. AWS Ces politiques AWS gérées accordent les autorisations nécessaires pour les cas d'utilisation courants afin que vous n'ayez pas à rechercher les autorisations nécessaires. Pour de plus amples informations, veuillez consulter [Stratégies gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *Guide de l'utilisateur IAM*.

Les politiques AWS gérées suivantes, que vous pouvez associer aux utilisateurs de votre compte, sont spécifiques à AWS CodeArtifact.
+ `AWSCodeArtifactAdminAccess`— Fournit un accès complet CodeArtifact , y compris les autorisations d'administration des CodeArtifact domaines. 

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
        {
           "Action": [
              "codeartifact:*"
           ],
           "Effect": "Allow",
           "Resource": "*"
        },
        {
           "Effect": "Allow",
           "Action": "sts:GetServiceBearerToken",
           "Resource": "*",
           "Condition": {
              "StringEquals": {
                 "sts:AWSServiceName": "codeartifact.amazonaws.com"
              }
           }
        }
     ]
  }
  ```

------
+ `AWSCodeArtifactReadOnlyAccess`— Fournit un accès en lecture seule à. CodeArtifact

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
        {
           "Action": [
              "codeartifact:Describe*",
              "codeartifact:Get*",
              "codeartifact:List*",
              "codeartifact:ReadFromRepository"
           ],
           "Effect": "Allow",
           "Resource": "*"
        },
        {
           "Effect": "Allow",
           "Action": "sts:GetServiceBearerToken",
           "Resource": "*",
           "Condition": {
              "StringEquals": {
                 "sts:AWSServiceName": "codeartifact.amazonaws.com"
              }
           }
        }  
     ]
  }
  ```

------

Pour créer et gérer des rôles de CodeArtifact service, vous devez également associer la politique AWS gérée nommée`IAMFullAccess`.

Vous pouvez également créer vos propres politiques IAM personnalisées afin d'accorder des autorisations pour les actions et les ressources CodeArtifact. Vous pouvez attacher ces politiques personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations.

## Autoriser un utilisateur à consulter ses propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Autoriser un utilisateur à obtenir des informations sur les référentiels et les domaines
<a name="security_iam_id-based-policy-examples-repos-and-domains"></a>

La politique suivante permet à un utilisateur ou à un rôle IAM de répertorier et de décrire tout type de CodeArtifact ressource, y compris les domaines, les référentiels, les packages et les actifs. La politique inclut également l'`codeArtifact:ReadFromRepository`autorisation, qui permet au principal de récupérer des packages depuis un CodeArtifact référentiel. Il n'autorise pas la création de nouveaux domaines ou référentiels et n'autorise pas la publication de nouveaux packages.

Les `sts:GetServiceBearerToken` autorisations `codeartifact:GetAuthorizationToken` et sont requises pour appeler l'`GetAuthorizationToken`API.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codeartifact:List*",
            "codeartifact:Describe*",
            "codeartifact:Get*",
            "codeartifact:Read*"
         ],
         "Resource": "*"      
      },
      {
         "Effect": "Allow",
         "Action": "sts:GetServiceBearerToken",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "sts:AWSServiceName": "codeartifact.amazonaws.com"
            }
         }
      }
   ]
}
```

------

## Autoriser un utilisateur à obtenir des informations sur des domaines spécifiques
<a name="security_iam_id-based-policy-examples-specific-domains"></a>

Voici un exemple de politique d'autorisation qui permet à un utilisateur de répertorier des domaines uniquement dans la `us-east-2` région pour créer un compte `123456789012` pour tout domaine commençant par le nom`my`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": "codeartifact:ListDomains",
         "Resource": "arn:aws:codeartifact:us-east-2:{{111122223333}}:domain/my*"      
      }
   ]
}
```

------

## Autoriser un utilisateur à obtenir des informations sur des référentiels spécifiques
<a name="security_iam_id-based-policy-examples-specific-repos"></a>

Voici un exemple de politique d'autorisation qui permet à un utilisateur d'obtenir des informations sur les référentiels se terminant par`test`, notamment des informations sur les packages qu'ils contiennent. L'utilisateur ne sera pas en mesure de publier, de créer ou de supprimer des ressources.

Les `sts:GetServiceBearerToken` autorisations `codeartifact:GetAuthorizationToken` et sont requises pour appeler l'`GetAuthorizationToken`API.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codeartifact:List*",
            "codeartifact:Describe*",
            "codeartifact:Get*",
            "codeartifact:Read*"
         ],
         "Resource": "arn:aws:codeartifact:*:*:repository/*/*test"      
      },
      {
         "Effect": "Allow",
         "Action": [
            "codeartifact:List*",
            "codeartifact:Describe*"
         ],
         "Resource": "arn:aws:codeartifact:*:*:package/*/*test/*/*/*"   
      },
      {
         "Effect": "Allow",
         "Action": "sts:GetServiceBearerToken",
         "Resource": "*",
         "Condition": {
            "StringEquals": {
               "sts:AWSServiceName": "codeartifact.amazonaws.com"
            }
         }
      },
      {
         "Effect": "Allow",
         "Action": "codeartifact:GetAuthorizationToken",
         "Resource": "*"
      }
   ]
}
```

------

## Limiter la durée du jeton d'autorisation
<a name="limit-token-duration"></a>

Les utilisateurs doivent s'authentifier à l' CodeArtifact aide de jetons d'autorisation pour publier ou consommer des versions de packages. Les jetons d'autorisation ne sont valides que pendant leur durée de vie configurée. Les jetons ont une durée de vie par défaut de 12 heures. Pour plus d'informations sur les jetons d'autorisation, consultez[AWS CodeArtifact authentification et jetons](tokens-authentication.md).

Lors de la récupération d'un jeton, les utilisateurs peuvent configurer la durée de vie du jeton. Les valeurs valides pour la durée de vie d'un jeton d'autorisation sont`0`, et tout nombre compris entre `900` (15 minutes) et `43200` (12 heures). La valeur de `0` créera un jeton d'une durée égale aux informations d'identification temporaires du rôle de l'utilisateur.

Les administrateurs peuvent limiter les valeurs valides pendant la durée de vie d'un jeton d'autorisation en utilisant la clé de `sts:DurationSeconds` condition figurant dans la politique d'autorisation attachée à l'utilisateur ou au groupe. Si l'utilisateur tente de créer un jeton d'autorisation dont la durée de vie est supérieure aux valeurs valides, la création du jeton échouera.

Les exemples de politiques suivants limitent les durées possibles d'un jeton d'autorisation créé par CodeArtifact les utilisateurs.

**Exemple de politique : limiter la durée de vie du jeton à exactement 12 heures (43 200 secondes)**

Avec cette politique, les utilisateurs ne pourront créer que des jetons d'autorisation d'une durée de vie de 12 heures.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codeartifact:*",
            "Resource": "*"
        },
        {
            "Sid": "sts",
            "Effect": "Allow",
            "Action": "sts:GetServiceBearerToken",
            "Resource": "*",
            "Condition": {
                "NumericEquals": {
                    "sts:DurationSeconds": 43200
                },
                "StringEquals": {
                    "sts:AWSServiceName": "codeartifact.amazonaws.com"
                }
            }
        }
    ]
}
```

------

**Exemple de politique : Limiter la durée de vie du jeton entre 15 minutes et 1 heure, ou égale à la période d'identification temporaire de l'utilisateur**

Grâce à cette politique, les utilisateurs pourront créer des jetons valides entre 15 minutes et 1 heure. Les utilisateurs pourront également créer un jeton qui durera la durée des informations d'identification temporaires de leur rôle en spécifiant `0` pour`--durationSeconds`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codeartifact:*",
            "Resource": "*"
        },
        {
            "Sid": "sts",
            "Effect": "Allow",
            "Action": "sts:GetServiceBearerToken",
            "Resource": "*",
            "Condition": {
                "NumericLessThanEquals": {
                    "sts:DurationSeconds": 3600
                },
                "StringEquals": {
                    "sts:AWSServiceName": "codeartifact.amazonaws.com"
                }
            }
        }
    ]
}
```

------