Comment App Runner fonctionne 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 App Runner fonctionne avec IAM

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

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 des actions et 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 politique JSON, consultez Références des éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

Actions

Les administrateurs peuvent utiliser les politiques AWS JSON 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 Action d’une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l’accès à une politique. Les actions de stratégie portent généralement le même nom que l'opération AWS d'API associée. Il existe quelques exceptions, telles que les actions avec autorisations uniquement qui n’ont pas d’opération API correspondante. 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 stratégie 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 accorder à une personne l'autorisation d'exécuter une instance Amazon EC2 avec l'opération d'API RunInstances Amazon EC2, vous incluez l'action ec2:RunInstances 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 Runner dans la référence d'autorisation de service.

Ressources

Les administrateurs peuvent utiliser les politiques AWS JSON 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 de politique JSON Resource indique le ou les objets auxquels l’action s’applique. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de définir une ressource à l’aide de 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 structure ARN suivante :

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

Pour plus d'informations sur le format des ARN, consultez les sections Amazon Resource Names (ARN) et AWS Service Namespaces dans le. Références générales AWS

Par exemple, pour spécifier le my-service service dans votre relevé, utilisez l'ARN suivant :

"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 ARN, consultez la section Ressources définies par AWS App Runner dans la référence d'autorisation de service. Pour savoir grâce à quelles actions vous pouvez spécifier l’ARN de chaque ressource, consultez Actions définies par AWS App Runner.

Clés de condition

Les administrateurs peuvent utiliser les politiques AWS JSON 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 éléments Condition dans une instruction, ou plusieurs clés dans un seul élément Condition, AWS les évalue à l’aide d’une opération AND 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 accorder à un utilisateur IAM l’autorisation d’accéder à une ressource uniquement si elle est balisée avec son nom d’utilisateur IAM. Pour plus d’informations, consultez Éléments d’une politique IAM : variables et identifications dans le Guide de l’utilisateur IAM.

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

App Runner prend en charge l'utilisation de certaines clés de condition globales. Pour voir toutes les clés de condition AWS globales, consultez la section Clés contextuelles de condition AWS globale dans le guide de l'utilisateur IAM.

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 Runner la référence d'autorisation de service. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, consultez la section 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, les utilisateurs d'IAM doivent être autorisés à effectuer des actions App Runner. Une méthode courante pour accorder des autorisations aux utilisateurs consiste à associer une politique aux utilisateurs ou aux groupes IAM. Pour plus d'informations sur la gestion des autorisations utilisateur, consultez la section Modification des autorisations d'un utilisateur IAM dans le guide de l'utilisateur IAM.

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 de politiques IAM dans le guide de l'utilisateur IAM.

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": "*" } ] }

Rôles IAM dans App Runner

Un rôle IAM est une entité au sein de vous Compte AWS qui possède des autorisations spécifiques.

Rôles liés à un service

Les rôles liés aux AWS services permettent aux services d'accéder aux ressources d'autres services pour effectuer une action en votre nom. Les rôles liés à un service s’affichent dans votre compte IAM et sont la propriété du service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant 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 s’affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu'un utilisateur IAM 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 de votre compte Amazon Elastic Container Registry (Amazon ECR). Il est obligatoire pour accéder à une image dans Amazon ECR, mais pas dans Amazon ECR Public. Avant de créer un service basé sur une image dans Amazon ECR, utilisez 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 l'CreateServiceAPI dans le AuthenticationConfigurationmembre 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 registre Amazon ECR 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 aux actions de AWS 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 des actions (API). 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, utilisez IAM 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 en tant que rôle d'instance lorsque vous appelez l'CreateServiceAPI dans 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.