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 de gérer l'IAMaccès à AWS App Runner, vous devez connaître les IAM fonctionnalités disponibles avec App Runner. Pour obtenir une vue d'ensemble du fonctionnement d'App Runner et AWS des autres servicesIAM, consultez la section AWS Services compatibles IAM dans le guide de IAM l'utilisateur.

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 stratégies 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 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 JSON des politiques 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 de stratégie portent généralement le même nom que l' AWS APIopération associée. 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 Runner dans la référence d'autorisation de service.

Ressources

Les administrateurs peuvent utiliser AWS JSON des politiques 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 Service Namespaces 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 Runner dans la référence d'autorisation de service. Pour savoir avec quelles actions vous pouvez spécifier pour chaque ressource, consultez la ARN section Actions définies par AWS App Runner.

Clés de condition

Les administrateurs peuvent utiliser AWS JSON des politiques 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 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 voir toutes les clés de condition AWS globales, voir les clés contextuelles de condition AWS globales dans le guide de IAM l'utilisateur.

App Runner prend en charge l'utilisation de certaines clés de condition globales. Pour voir toutes les clés de condition AWS globales, voir Clés contextuelles de condition AWS globale 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 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, 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 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 détenus par le 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 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 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 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.