

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 Serverless Application Repository Exemples de politiques basées sur l'identité
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources AWS Serverless Application Repository . Ils ne peuvent pas non plus effectuer de tâches à l'aide de l' AWS API AWS Management Console AWS CLI, ou. Un administrateur IAM doit créer des politiques IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces politiques aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour savoir comment créer une politique basée sur l'identité IAM à l'aide de ces exemples de documents de politique JSON, consultez la section [Création de politiques dans l'onglet JSON du guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) de l'utilisateur *IAM*.

**Topics**
+ [Bonnes pratiques en matière de politiques](#security_iam_service-with-iam-policy-best-practices)
+ [Utilisation de la AWS Serverless Application Repository console](#security_iam_id-based-policy-examples-console)
+ [Autoriser les utilisateurs à afficher leurs propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Exemples de politiques gérées par le client](#security_iam_id-examples)

## 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é sont très puissantes. Ils déterminent si quelqu'un peut créer, accéder ou supprimer AWS Serverless Application Repository des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre AWS compte. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Accorder le moindre privilège** : lorsque vous créez des politiques personnalisées, accordez uniquement les autorisations nécessaires à l'exécution d'une tâche. Commencez avec un ensemble d'autorisations minimum et accordez-en d'autres si nécessaire. Cette méthode est plus sûre que de commencer avec des autorisations trop permissives et d'essayer de les restreindre plus tard. Pour plus d’informations, consultez [Octroi du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *Guide de l’utilisateur IAM*.
+ **Activer la MFA pour les opérations confidentielles** : pour plus de sécurité, demandez aux utilisateurs IAM d'utiliser l'Authentification multifacteur (MFA) pour accéder à des ressources ou à des opérations d'API confidentielles. Pour de plus amples informations, veuillez consulter [Utilisation de l’Authentification multi-facteur (MFA) dans AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) dans le *guide de l’utilisateur IAM*.
+ **Utiliser des conditions de politique pour davantage de sécurité** : dans la mesure du possible, définissez les conditions dans lesquelles vos politiques basées sur l'identité autorisent l'accès à une ressource. Par exemple, vous pouvez rédiger les conditions pour spécifier une plage d'adresses IP autorisées d'où peut provenir une demande. Vous pouvez également écrire des conditions pour autoriser les requêtes uniquement à une date ou dans une plage de temps spécifiée, ou pour imposer l'utilisation de SSL ou de MFA. Pour plus d'informations, consultez [Éléments de politique JSON IAM : Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation de la AWS Serverless Application Repository console
<a name="security_iam_id-based-policy-examples-console"></a>

La AWS Serverless Application Repository console fournit un environnement intégré qui vous permet de découvrir et de gérer les AWS Serverless Application Repository applications. La console fournit des fonctionnalités et des flux de travail qui nécessitent souvent des autorisations pour gérer une AWS Serverless Application Repository application, en plus des autorisations spécifiques à l'API documentées dans le. [AWS Serverless Application Repository Autorisations d'API : référence des actions et des ressources](serverlessrepo-api-permissions-ref.md)

Pour plus d'informations sur les autorisations nécessaires pour utiliser la AWS Serverless Application Repository console, consultez[Exemples de politiques gérées par le client](#security_iam_id-examples).

## Autoriser les utilisateurs à afficher leurs 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": "*"
        }
    ]
}
```

## Exemples de politiques gérées par le client
<a name="security_iam_id-examples"></a>

Cette section fournit un ensemble d'exemples de stratégies que vous pouvez associer à un utilisateur. Si vous créez des stratégies pour la première fois, nous vous recommandons de commencer par créer un utilisateur IAM dans votre compte et de lui attacher les stratégies dans l'ordre. Vous pouvez également utiliser ces exemples pour créer une stratégie personnalisée unique qui inclut des autorisations pour effectuer plusieurs actions, puis l'attacher à l'utilisateur.

 Pour plus d'informations sur la manière d'associer des politiques aux utilisateurs, consultez la section [Ajouter des 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*.

**Topics**
+ [Exemple d'éditeur 1 : autoriser un éditeur à répertorier les applications](#security_iam_id-example-publisher-list-apps)
+ [Exemple d'éditeur 2 : autoriser un éditeur à afficher les détails d'une application ou d'une version de l'application](#security_iam_id-example-publisher-view-app-details)
+ [Exemple d'éditeur 3 : autoriser un éditeur à créer une application ou une version de l'application](#security_iam_id-example-publisher-create-apps)
+ [Exemple d'éditeur 4 : autoriser un éditeur à créer une stratégie d'application pour partager des applications avec d'autres](#security_iam_id-example-publisher-create-app-policies)
+ [Exemple de consommateur 1 : autoriser un consommateur à rechercher des applications](#security_iam_id-example-consumer-search-apps)
+ [Exemple de consommateur 2 : autoriser un consommateur à afficher les détails d'une application](#security_iam_id-example-consumer-view-app-details)
+ [Exemple de consommateur 3 : autoriser un consommateur à déployer une application](#security_iam_id-example-consumer-deploy-apps)
+ [Exemple 4 du consommateur : Refuser l'accès aux ressources de déploiement](#security_iam_id-example-consumer-deny-deployment-assets)
+ [Exemple 5 du consommateur : empêcher un consommateur de rechercher et de déployer des applications publiques](#access-control-identity-based-example-consumer-deny-public-apps)

### Exemple d'éditeur 1 : autoriser un éditeur à répertorier les applications
<a name="security_iam_id-example-publisher-list-apps"></a>

Un utilisateur IAM de votre compte doit disposer des autorisations pour l'opération `serverlessrepo:ListApplications` avant d'avoir accès au contenu de la console. Lorsque vous accordez ces autorisations, la console peut afficher la liste des AWS Serverless Application Repository applications du AWS compte créé dans la AWS région spécifique à laquelle appartient l'utilisateur.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListExistingApplications",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:ListApplications"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 

### Exemple d'éditeur 2 : autoriser un éditeur à afficher les détails d'une application ou d'une version de l'application
<a name="security_iam_id-example-publisher-view-app-details"></a>

L'utilisateur peut sélectionner une AWS Serverless Application Repository application et consulter les détails de celle-ci. Ces détails incluent l'auteur, la description, les versions et les autres informations de configuration. Pour ce faire, l'utilisateur a besoin d'autorisations pour les opérations d'API `serverlessrepo:GetApplication` et `serverlessrepo:ListApplicationVersions` pour AWS Serverless Application Repository. 

Dans l'exemple suivant, ces autorisations sont accordées pour l'application spécifique dont l'ARN (Amazon Resource Name) est spécifié comme la valeur `Resource`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:GetApplication",
                "serverlessrepo:ListApplicationVersions"
            ],
            "Resource": "arn:aws:serverlessrepo:{{us-east-1}}:{{111122223333}}:applications/{{application-name}}"
        }
    ]
}
```

------

 

### Exemple d'éditeur 3 : autoriser un éditeur à créer une application ou une version de l'application
<a name="security_iam_id-example-publisher-create-apps"></a>

Si vous souhaitez autoriser un utilisateur à créer des AWS Serverless Application Repository applications, vous devez accorder des autorisations aux `serverlessrepo:CreateApplicationVersions` opérations `serverlessrepo:CreateApplication` et, comme indiqué dans la politique suivante.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:CreateApplication",
                "serverlessrepo:CreateApplicationVersion"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 

### Exemple d'éditeur 4 : autoriser un éditeur à créer une stratégie d'application pour partager des applications avec d'autres
<a name="security_iam_id-example-publisher-create-app-policies"></a>

Pour que les utilisateurs partagent des applications avec d'autres, vous devez leur accorder des autorisations pour créer des stratégies d'application, comme illustré dans la stratégie suivante.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ShareApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:PutApplicationPolicy",
                "serverlessrepo:GetApplicationPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 

### Exemple de consommateur 1 : autoriser un consommateur à rechercher des applications
<a name="security_iam_id-example-consumer-search-apps"></a>

Pour que les consommateurs recherchent des applications, vous devez leur accorder les autorisations suivantes.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SearchApplications",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:SearchApplications"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 

### Exemple de consommateur 2 : autoriser un consommateur à afficher les détails d'une application
<a name="security_iam_id-example-consumer-view-app-details"></a>

Un utilisateur peut sélectionner une AWS Serverless Application Repository application et en afficher les détails, tels que l'auteur, la description, les versions et d'autres informations de configuration. Pour ce faire, l'utilisateur doit être autorisé à effectuer les AWS Serverless Application Repository opérations suivantes.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:GetApplication",
                "serverlessrepo:ListApplicationVersions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

 

### Exemple de consommateur 3 : autoriser un consommateur à déployer une application
<a name="security_iam_id-example-consumer-deploy-apps"></a>

Pour que les clients déploient des applications, vous devez leur accorder des autorisations pour exécuter un certain nombre d'opérations. La stratégie suivante accorde aux clients les autorisations requises.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DeployApplication",
            "Effect": "Allow",
            "Action": [
                "serverlessrepo:CreateCloudFormationChangeSet",
                "cloudformation:CreateChangeSet",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:DescribeStacks"

            ],
            "Resource": "*"
        }
    ]
}
```

------

**Note**  
Le déploiement d'une application peut nécessiter des autorisations pour utiliser des AWS ressources supplémentaires. Comme il AWS Serverless Application Repository utilise le même mécanisme de déploiement sous-jacent que celui utilisé CloudFormation, consultez [Controlling Access with AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) pour plus d'informations. Vous pouvez également consulter [ Dépannage : Autorisations IAM insuffisantes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-insufficient-iam-permissions) pour obtenir de l'aide en cas de problèmes de déploiement liés aux autorisations.

### Exemple 4 du consommateur : Refuser l'accès aux ressources de déploiement
<a name="security_iam_id-example-consumer-deny-deployment-assets"></a>

Lorsqu'une application est partagée en privé avec un AWS compte, par défaut, tous les utilisateurs de ce compte peuvent accéder aux ressources de déploiement de tous les autres utilisateurs du même compte. La politique suivante empêche les utilisateurs d'un compte d'accéder aux ressources de déploiement, qui sont stockées dans le compartiment Amazon S3 pour le AWS Serverless Application Repository.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyDeploymentAssetAccess",
            "Effect": "Deny",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::awsserverlessrepo-changesets*/*"
            ]
        }
    ]
}
```

------

### Exemple 5 du consommateur : empêcher un consommateur de rechercher et de déployer des applications publiques
<a name="access-control-identity-based-example-consumer-deny-public-apps"></a>

Vous pouvez empêcher des utilisateurs d'effectuer certaines actions sur les applications.

La stratégie suivante s'applique aux demandes publiques en spécifiant que `serverlessrepo:applicationType` est `public`. Elle empêche les utilisateurs d'effectuer un certain nombre d'actions en spécifiant qu’ `Effect` est `Deny`. Pour plus d'informations sur les clés de condition disponibles pour AWS Serverless Application Repository, consultez [Actions, ressources et clés de condition pour AWS Serverless Application Repository](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsserverlessapplicationrepository.html).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Condition": {
                "StringEquals": {
                    "serverlessrepo:applicationType": "public"
                }
            },
            "Action": [
                "serverlessrepo:SearchApplications",
                "serverlessrepo:GetApplication",
                "serverlessrepo:CreateCloudFormationTemplate",
                "serverlessrepo:CreateCloudFormationChangeSet",
                "serverlessrepo:ListApplicationVersions",
                "serverlessrepo:ListApplicationDependencies"
            ],
            "Resource": "*",
            "Effect": "Deny"
        }
    ]
}
```

------

**Note**  
Cette déclaration de politique peut également être utilisée comme politique de contrôle des services et appliquée à une AWS organisation. Pour plus d'informations sur les politiques de contrôle des services, consultez la section [Politiques de contrôle des services](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html) dans le *guide de AWS Organizations l'utilisateur*.