Cómo funciona App Runner con IAM - AWS App Runner

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo funciona App Runner con IAM

Antes de administrar el acceso a AWS App Runner, debes entender qué IAM funciones están disponibles para usar con App Runner. IAM Para obtener una visión general de cómo funcionan App Runner y otros AWS serviciosIAM, consulta AWS los servicios con los que funcionan IAM en la Guía del IAM usuario.

Para ver otros temas de seguridad de App Runner, consulteSeguridad en App Runner.

Políticas de App Runner basadas en la identidad

Con las políticas IAM basadas en la identidad, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. App Runner admite acciones, recursos y claves de condición específicos. Para obtener más información sobre todos los elementos que se utilizan en una JSON política, consulte la Referencia sobre los elementos de la IAM JSON política en la Guía del IAM usuario.

Acciones

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puedes realizar acciones en qué recursos y en qué condiciones.

El Action elemento de una JSON política describe las acciones que puede utilizar para permitir o denegar el acceso en una política. Las acciones de política suelen tener el mismo nombre que la AWS API operación asociada. Hay algunas excepciones, como las acciones que solo permiten permisos y que no tienen una operación coincidente. API También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.

Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Las acciones de política en App Runner usan el siguiente prefijo antes de la acción:. apprunner: Por ejemplo, para conceder permiso a alguien para ejecutar una EC2 instancia de Amazon con la EC2 RunInstances API operación Amazon, debes incluir la ec2:RunInstances acción en su política. Las instrucciones de la política deben incluir un elemento Action o un elemento NotAction. App Runner define su propio conjunto de acciones que describen las tareas que puedes realizar con este servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

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

Puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, para especificar todas las acciones que comiencen con la palabra Describe, incluya la siguiente acción:

"Action": "apprunner:Describe*"

Para ver una lista de las acciones de App Runner, consulte las acciones definidas AWS App Runner en la Referencia de autorización del servicio.

Recursos

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puedes realizar acciones en qué recursos y en qué condiciones.

El elemento Resource JSON de política especifica el objeto o los objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso mediante su nombre de recurso de Amazon (ARN). Puedes hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utiliza un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Los recursos de App Runner tienen la siguiente ARN estructura:

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

Para obtener más información sobre el formato deARNs, consulte Nombres de recursos de Amazon (ARNs) y espacios de nombres de AWS servicios en. Referencia general de AWS

Por ejemplo, para especificar el my-service servicio en su declaración, utilice lo siguiente: ARN

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

Para especificar todos los servicios que pertenecen a una cuenta específica, utilice el comodín (*):

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

Algunas acciones de App Runner, como las de creación de recursos, no se pueden realizar en un recurso específico. En dichos casos, debe utilizar el carácter comodín (*).

"Resource": "*"

Para ver una lista de los tipos de recursos de App Runner y sus tiposARNs, consulte los recursos definidos AWS App Runner en la Referencia de autorización de servicios. Para saber con qué acciones puede especificar cada recurso, consulte Acciones definidas por AWS App Runner. ARN

Claves de condición

Los administradores pueden usar AWS JSON políticas para especificar quién tiene acceso a qué. Es decir, qué entidad principal puedes realizar acciones en qué recursos y en qué condiciones.

El elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition es opcional. Puedes crear expresiones condicionales que utilizan operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento de Condition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para una única clave de condición, AWS evalúa la condición mediante una OR operación lógica. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.

También puedes utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puede conceder a un IAM usuario permiso para acceder a un recurso solo si está etiquetado con su nombre de IAM usuario. Para obtener más información, consulte los elementos IAM de la política: variables y etiquetas en la Guía del IAM usuario.

AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición AWS globales, consulte las claves de contexto de condición AWS globales en la Guía del IAMusuario.

App Runner admite el uso de algunas claves de condición globales. Para ver todas las claves de condición AWS globales, consulte las claves de contexto de condición AWS globales en la Guía del IAM usuario.

App Runner define un conjunto de claves de condición específicas del servicio. Además, App Runner admite el control de acceso basado en etiquetas, que se implementa mediante claves de condición. Para obtener más información, consulte Autorización basada en las etiquetas de App Runner.

Para ver una lista de las claves de condición de App Runner, consulta las claves de condición AWS App Runner en la Referencia de autorización del servicio. Para saber con qué acciones y recursos puede utilizar una clave de condición, consulte Acciones definidas por AWS App Runner.

Ejemplos

Para ver ejemplos de políticas basadas en la identidad de App Runner, consulte. Ejemplos de políticas basadas en la identidad de App Runner

Políticas de App Runner basadas en recursos

App Runner no admite políticas basadas en recursos.

Autorización basada en las etiquetas de App Runner

Puede adjuntar etiquetas a los recursos de App Runner o pasarlas en una solicitud a App Runner. Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición apprunner:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys. Para obtener más información sobre cómo etiquetar los recursos de App Runner, consulteConfiguración de un servicio de App Runner.

Para consultar un ejemplo de política basada en la identidad para limitar el acceso a un recurso en función de las etiquetas de ese recurso, consulte Controlar el acceso a los servicios de App Runner en función de las etiquetas.

Permisos de usuario de App Runner

Para usar App Runner, IAM los usuarios necesitan permisos para las acciones de App Runner. Una forma habitual de conceder permisos a los usuarios es adjuntar una política a IAM los usuarios o grupos. Para obtener más información sobre la administración de los permisos de los usuarios, consulte Cambiar los permisos de un IAM usuario en la Guía del IAM usuario.

App Runner proporciona dos políticas administradas que puedes adjuntar a tus usuarios.

  • AWSAppRunnerReadOnlyAccess— Otorga permisos para enumerar y ver detalles sobre los recursos de App Runner.

  • AWSAppRunnerFullAccess— Otorga permisos a todas las acciones de App Runner.

Para un control más detallado de los permisos de los usuarios, puedes crear una política personalizada y adjuntarla a tus usuarios. Para obtener más información, consulte Creación de IAM políticas en la Guía IAM del usuario.

Para ver ejemplos de políticas de usuario, consultePolíticas de usuario.

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

IAMFunciones de App Runner

Un IAMrol es una entidad dentro de ti Cuenta de AWS que tiene permisos específicos.

Roles vinculados al servicio

Los roles vinculados a un servicio permiten a AWS los servicios acceder a los recursos de otros servicios para completar una acción en tu nombre. Los roles vinculados al servicio aparecen en tu IAM cuenta y son propiedad del servicio. Un IAM administrador puede ver los permisos de los roles vinculados al servicio, pero no editarlos.

App Runner admite roles vinculados a servicios. Para obtener información sobre la creación o administración de funciones vinculadas a servicios de App Runner, consulte. Uso de funciones vinculadas a servicios para App Runner

Roles de servicio

Esta característica permite que un servicio asuma un rol de servicio en su nombre. Este rol permite que el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles de servicio aparecen en su IAM cuenta y son propiedad de la cuenta. Esto significa que un IAM usuario puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

App Runner admite algunas funciones de servicio.

Rol de acceso

La función de acceso es una función que App Runner utiliza para acceder a las imágenes de Amazon Elastic Container Registry (AmazonECR) de su cuenta. Es obligatorio para acceder a una imagen en Amazon ECR y no en Amazon ECR Public. Antes de crear un servicio basado en una imagen en AmazonECR, utilízalo IAM para crear un rol de servicio y usa la política AWSAppRunnerServicePolicyForECRAccess gestionada en él. A continuación, puede transferir esta función a App Runner cuando llame al CreateServiceAPIAuthenticationConfigurationmiembro del SourceConfigurationparámetro o cuando utilice la consola de App Runner para crear un servicio.

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

Si crea su propia política personalizada para su función de acceso, asegúrese "Resource": "*" de especificar la ecr:GetAuthorizationToken acción. Los tokens se pueden usar para acceder a cualquier ECR registro de Amazon al que tengas acceso.

Cuando crees tu función de acceso, asegúrate de añadir una política de confianza que declare al responsable del servicio de App Runner build.apprunner.amazonaws.com como una entidad de confianza.

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

Si utilizas la consola de App Runner para crear un servicio, la consola puede crear automáticamente un rol de acceso para ti y elegirlo para el nuevo servicio. La consola también muestra otras funciones de tu cuenta y, si lo deseas, puedes seleccionar una función diferente.

Rol de instancia

El rol de instancia es un rol opcional que App Runner usa para proporcionar permisos a las acciones de AWS servicio que necesitan las instancias informáticas de tu servicio. Debes proporcionar un rol de instancia a App Runner si el código de tu aplicación llama a AWS actions (APIs). Incorpora los permisos necesarios en tu rol de instancia o crea tu propia política personalizada y úsala en el rol de instancia. No tenemos forma de anticipar qué llamadas utilizará tu código. Por lo tanto, no ofrecemos una política gestionada para este fin.

Antes de crear un servicio de App Runner, IAM utilícelo para crear un rol de servicio con las políticas personalizadas o integradas necesarias. A continuación, puede transferir esta función a App Runner como función de instancia cuando llame al CreateServiceAPIInstanceRoleArnmiembro del InstanceConfigurationparámetro o cuando utilice la consola de App Runner para crear un servicio.

Al crear el rol de instancia, asegúrate de agregar una política de confianza que declare al director del servicio de App Runner tasks.apprunner.amazonaws.com como una entidad de confianza.

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

Si utilizas la consola de App Runner para crear un servicio, la consola mostrará una lista de las funciones de tu cuenta y podrás seleccionar la función que creaste para ello.

Para obtener información sobre la creación de un servicio, consulteCómo crear un servicio de App Runner.