Comment fonctionne App Runner avec IAM - AWS App Runner

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.

Comment fonctionne App Runner avec IAM

Avant d'utiliser IAM pour gérer l'accès à AWS App Runner, vous devez connaître les IAM fonctionnalités disponibles avec App Runner. Pour obtenir une vue d'ensemble de la façon dont App Runner et d'autres AWS services fonctionnent avecIAM, voir AWS Services compatibles avec IAM le guide de l'IAMutilisateur.

Pour d'autres sujets relatifs à la sécurité d'App Runner, consultezSécurité dans App Runner.

Politiques basées sur l'identité d'App Runner

Avec les politiques IAM basées sur l'identité, vous pouvez spécifier les actions et les ressources autorisées ou refusées ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. App Runner prend en charge des actions, des ressources et des clés de condition spécifiques. Pour en savoir plus sur tous les éléments que vous utilisez dans une JSON politique, consultez la section Référence des éléments de IAM JSON stratégie dans le guide de IAM l'utilisateur.

Actions

Les administrateurs peuvent utiliser AWS JSONpolitiques pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L'Actionélément d'une JSON politique décrit les actions que vous pouvez utiliser pour autoriser ou refuser l'accès dans une politique. Les actions politiques portent généralement le même nom que les actions associées AWS APIopération. Il existe certaines exceptions, telles que les actions avec autorisation uniquement qui n'ont pas d'opération correspondante. API Certaines opérations nécessitent également plusieurs actions dans une politique. Ces actions supplémentaires sont nommées actions dépendantes.

Intégration d’actions dans une politique afin d’accorder l’autorisation d’exécuter les opérations associées.

Les actions de politique dans App Runner utilisent le préfixe suivant avant l'action :apprunner:. Par exemple, pour autoriser quelqu'un à exécuter une EC2 instance Amazon avec l'EC2RunInstancesAPIopération Amazon, vous devez inclure l'ec2:RunInstancesaction dans sa politique. Les déclarations de politique doivent inclure un élément Action ou NotAction. App Runner définit son propre ensemble d'actions décrivant les tâches que vous pouvez effectuer avec ce service.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

"Action": [ "apprunner:CreateService", "apprunner:CreateConnection" ]

Vous pouvez aussi spécifier plusieurs actions à l’aide de caractères génériques (*). Par exemple, pour spécifier toutes les actions qui commencent par le mot Describe, incluez l’action suivante :

"Action": "apprunner:Describe*"

Pour consulter la liste des actions d'App Runner, consultez la section Actions définies par AWS App Runnerdans la référence d'autorisation de service.

Ressources

Les administrateurs peuvent utiliser AWS JSONpolitiques pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L'élément Resource JSON de stratégie indique le ou les objets auxquels s'applique l'action. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de spécifier une ressource en utilisant son Amazon Resource Name (ARN). Vous pouvez le faire pour des actions qui prennent en charge un type de ressource spécifique, connu sous la dénomination autorisations de niveau ressource.

Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, telles que les opérations de liste, utilisez un caractère générique (*) afin d’indiquer que l’instruction s’applique à toutes les ressources.

"Resource": "*"

Les ressources App Runner ont la ARN structure suivante :

arn:aws:apprunner:region:account-id:resource-type/resource-name[/resource-id]

Pour plus d'informations sur le format deARNs, consultez Amazon Resource Names (ARNs) et AWS Espaces de noms de service dans le Références générales AWS.

Par exemple, pour spécifier le my-service service dans votre relevé, utilisez ce qui suit ARN :

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/my-service"

Pour spécifier tous les services appartenant à un compte spécifique, utilisez le caractère générique (*) :

"Resource": "arn:aws:apprunner:us-east-1:123456789012:service/*"

Certaines actions d'App Runner, telles que celles relatives à la création de ressources, ne peuvent pas être effectuées sur une ressource spécifique. Dans ces cas-là, vous devez utiliser le caractère générique (*).

"Resource": "*"

Pour consulter la liste des types de ressources App Runner et leurs caractéristiquesARNs, consultez la section Ressources définies par AWS App Runnerdans la référence d'autorisation de service. Pour savoir quelles actions vous pouvez définir pour chaque ressource, voir Actions définies par ARN AWS App Runner.

Clés de condition

Les administrateurs peuvent utiliser AWS JSONpolitiques pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’une instruction est appliquée. L’élément Condition est facultatif. Vous pouvez créer des expressions conditionnelles qui utilisent des opérateurs de condition, tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande.

Si vous spécifiez plusieurs Condition éléments dans une instruction ou plusieurs clés dans un seul Condition élément, AWS les évalue à l'aide d'une AND opération logique. Si vous spécifiez plusieurs valeurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une OR opération logique. Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soient accordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Par exemple, vous pouvez autoriser un IAM utilisateur à accéder à une ressource uniquement si celle-ci est étiquetée avec son nom IAM d'utilisateur. Pour plus d'informations, consultez IAMla section Éléments de politique : variables et balises dans le Guide de IAM l'utilisateur.

AWS prend en charge les clés de condition globales et les clés de condition spécifiques au service. Pour tout voir AWS clés de condition globales, voir AWS clés contextuelles des conditions globales dans le guide de IAM l'utilisateur.

App Runner prend en charge l'utilisation de certaines clés de condition globales. Pour tout voir AWS clés de condition globales, voir AWS Clés contextuelles des conditions globales dans le guide de IAM l'utilisateur.

App Runner définit un ensemble de clés de condition spécifiques au service. En outre, App Runner prend en charge le contrôle d'accès basé sur des balises, qui est mis en œuvre à l'aide de clés de condition. Pour plus de détails, consultez Autorisation basée sur les tags App Runner.

Pour consulter la liste des clés de condition d'App Runner, consultez la section Clés de condition pour AWS App Runnerdans la référence d'autorisation de service. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, voir Actions définies par AWS App Runner.

Exemples

Pour consulter des exemples de politiques basées sur l'identité d'App Runner, consultez. Exemples de politiques basées sur l'identité d'App Runner

Politiques basées sur les ressources d'App Runner

App Runner ne prend pas en charge les politiques basées sur les ressources.

Autorisation basée sur les tags App Runner

Vous pouvez associer des tags aux ressources App Runner ou transmettre des tags dans une demande à App Runner. Pour contrôler l’accès basé sur des étiquettes, vous devez fournir les informations d’étiquette dans l’élément de condition d’une politique utilisant les clés de condition apprunner:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. Pour plus d'informations sur le balisage des ressources App Runner, consultezConfiguration d'un service App Runner.

Pour visualiser un exemple de politique basée sur l'identité permettant de limiter l'accès à une ressource en fonction des balises de cette ressource, consultez Contrôle de l'accès aux services App Runner en fonction des balises.

Autorisations utilisateur d'App Runner

Pour utiliser App Runner, IAM les utilisateurs doivent être autorisés à effectuer des actions dans App Runner. Une méthode courante pour accorder des autorisations aux utilisateurs consiste à associer une politique aux IAM utilisateurs ou aux groupes. Pour plus d'informations sur la gestion des autorisations utilisateur, consultez la section Modification des autorisations d'un IAM utilisateur dans le Guide de IAM l'utilisateur.

App Runner fournit deux politiques gérées que vous pouvez associer à vos utilisateurs.

  • AWSAppRunnerReadOnlyAccess— Accorde l'autorisation de répertorier et d'afficher les informations relatives aux ressources App Runner.

  • AWSAppRunnerFullAccess— Accorde des autorisations pour toutes les actions d'App Runner.

Pour un contrôle plus précis des autorisations des utilisateurs, vous pouvez créer une politique personnalisée et l'associer à vos utilisateurs. Pour plus de détails, consultez la section Création IAM de politiques dans le guide de IAM l'utilisateur.

Pour des exemples de politiques utilisateur, voirStratégies utilisateur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apprunner:List*", "apprunner:Describe*" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::*:role/aws-service-role/apprunner.amazonaws.com/AWSServiceRoleForAppRunner", "arn:aws:iam::*:role/aws-service-role/networking.apprunner.amazonaws.com/AWSServiceRoleForAppRunnerNetworking" ], "Condition": { "StringLike": { "iam:AWSServiceName": [ "apprunner.amazonaws.com", "networking.apprunner.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": "apprunner.amazonaws.com" } } }, { "Sid": "AppRunnerAdminAccess", "Effect": "Allow", "Action": "apprunner:*", "Resource": "*" } ] }

IAMRôles d'App Runner

Un IAMrôle est une entité au sein de votre Compte AWS qui dispose d'autorisations spécifiques.

Rôles liés à un service

Les rôles liés à un service permettent AWS des services permettant d'accéder aux ressources d'autres services afin d'effectuer une action en votre nom. Les rôles liés au service apparaissent dans votre IAM compte et appartiennent au service. Un IAM administrateur peut consulter mais pas modifier les autorisations pour les rôles liés à un service.

App Runner prend en charge les rôles liés aux services. Pour plus d'informations sur la création ou la gestion des rôles liés à un service App Runner, consultez. Utilisation de rôles liés à un service pour App Runner

Rôles de service

Cette fonction permet à un service d’endosser une fonction du service en votre nom. Ce rôle autorise le service à accéder à des ressources d’autres services pour effectuer une action en votre nom. Les rôles de service apparaissent dans votre IAM compte et sont détenus par le compte. Cela signifie qu'un IAM utilisateur peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bon fonctionnement du service.

App Runner prend en charge quelques rôles de service.

Rôle d'accès

Le rôle d'accès est un rôle qu'App Runner utilise pour accéder aux images d'Amazon Elastic Container Registry (AmazonECR) sur votre compte. Il est obligatoire pour accéder à une image sur AmazonECR, mais pas sur Amazon ECR Public. Avant de créer un service basé sur une image dans AmazonECR, utilisez-le IAM pour créer un rôle de service et utilisez la politique AWSAppRunnerServicePolicyForECRAccess gérée qu'il contient. Vous pouvez ensuite transmettre ce rôle à App Runner lorsque vous appelez le AuthenticationConfigurationmembre CreateServiceAPIin du SourceConfigurationparamètre ou lorsque vous utilisez la console App Runner pour créer un service.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Note

Si vous créez votre propre politique personnalisée pour votre rôle d'accès, veillez "Resource": "*" à spécifier l'ecr:GetAuthorizationTokenaction. Les jetons peuvent être utilisés pour accéder à n'importe quel ECR registre Amazon auquel vous avez accès.

Lorsque vous créez votre rôle d'accès, veillez à ajouter une politique de confiance qui déclare le principal de service App Runner build.apprunner.amazonaws.com comme une entité de confiance.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "build.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Si vous utilisez la console App Runner pour créer un service, la console peut automatiquement créer un rôle d'accès pour vous et le choisir pour le nouveau service. La console répertorie également les autres rôles de votre compte, et vous pouvez en sélectionner un autre si vous le souhaitez.

Rôle de l'instance

Le rôle d'instance est un rôle facultatif qu'App Runner utilise pour fournir des autorisations à AWS les actions de service dont les instances de calcul de votre service ont besoin. Vous devez fournir un rôle d'instance à App Runner si le code de votre application appelle AWS actions (APIs). Intégrez les autorisations requises dans votre rôle d'instance ou créez votre propre politique personnalisée et utilisez-la dans le rôle d'instance. Nous n'avons aucun moyen d'anticiper les appels utilisés par votre code. Par conséquent, nous ne fournissons pas de politique gérée à cette fin.

Avant de créer un service App Runner, IAM utilisez-le pour créer un rôle de service avec les politiques personnalisées ou intégrées requises. Vous pouvez ensuite transmettre ce rôle à App Runner CreateServiceAPIen tant que rôle d'instance lorsque vous appelez le InstanceRoleArn membre du InstanceConfigurationparamètre ou lorsque vous utilisez la console App Runner pour créer un service.

Lorsque vous créez votre rôle d'instance, veillez à ajouter une politique de confiance qui déclare le principal de service App Runner tasks.apprunner.amazonaws.com comme une entité de confiance.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "tasks.apprunner.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Si vous utilisez la console App Runner pour créer un service, la console répertorie les rôles de votre compte et vous pouvez sélectionner le rôle que vous avez créé à cette fin.

Pour plus d'informations sur la création d'un service, consultezCréation d'un service App Runner.