Especificación de permisos para aplicaciones que se ejecutan en EC2 instancias - AWS OpsWorks

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.

Especificación de permisos para aplicaciones que se ejecutan en EC2 instancias

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

Si las aplicaciones que se ejecutan en las EC2 instancias de Amazon de tu stack necesitan acceder a otros AWS recursos, como los buckets de Amazon S3, deben tener los permisos adecuados. Para conceder estos permisos, utilice un perfil de instancia. Puedes especificar un perfil de instancia para cada instancia al crear una pila de AWS OpsWorks Stacks.

Opción avanzada de la página Add Stack.

También puede editar la configuración de la capa para especificar un perfil para las instancias de una capa.

El perfil de instancia especifica un IAM rol. Las aplicaciones que se ejecutan en la instancia pueden asumir esa función para acceder a AWS los recursos, con sujeción a los permisos que otorgue la política de la función. Para obtener más información sobre cómo una aplicación asume un rol, consulta Cómo asumir el rol mediante una API llamada.

Puede crear un perfil de instancia de cualquiera de las siguientes formas:

Un perfil de instancia debe tener una relación de confianza y una política adjunta que conceda permisos para acceder AWS a los recursos.

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

El perfil de la instancia debe tener esta relación de confianza para que AWS OpsWorks Stacks actúe en tu nombre. Si utiliza el rol de servicio predeterminado, no modifique la relación de confianza. Si crea un rol de servicio personalizado, especifique la relación de confianza de la siguiente manera:

  • Si utiliza el asistente Create Role de la IAMconsola, especifique el tipo de EC2 rol de Amazon en AWSService Roles en la segunda página del asistente.

  • Si utilizas una AWS CloudFormation plantilla, puedes añadir algo como lo siguiente a la sección de recursos de la plantilla.

    "Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }

En el caso de que cree su propio perfil de instancia, puede adjuntar una política adecuada al rol del perfil en ese momento. Una vez creada la pila, debe usar la IAMconsola o API adjuntar una política adecuada a la función del perfil. Por ejemplo, la siguiente política concede acceso total a todos los objetos del bucket de Amazon S3 denominado amzn-s3-demo-bucket. Reemplazar region y amzn-s3-demo-bucket con los valores adecuados a su configuración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:region::amzn-s3-demo-bucket/*" } ] }

Para ver un ejemplo de cómo crear y utilizar un perfil de instancia, consulte Uso de un bucket de Amazon S3.

Si tu aplicación usa un perfil de instancia para llamar a los AWS OpsWorks Stacks API desde una EC2 instancia, la política debe permitir la iam:PassRole acción además de las acciones apropiadas para Stacks y otros servicios. AWS OpsWorks AWS El permiso iam:PassRole permite a AWS OpsWorks Stacks asumir el rol de servicio en su nombre. Para obtener más información sobre los AWS OpsWorks StacksAPI, consulta la Referencia. AWS OpsWorks API

El siguiente es un ejemplo de una IAM política que te permite llamar a cualquier acción de AWS OpsWorks Stacks desde una EC2 instancia, así como a cualquier acción de Amazon EC2 o Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:region:account_id:instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
nota

Si no lo permitesiam:PassRole, cualquier intento de invocar una acción de AWS OpsWorks Stacks fallará y generará un error como el siguiente:

User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole

Para obtener más información sobre el uso de roles en una EC2 instancia para obtener permisos, consulte Concesión de acceso a los AWS recursos a las aplicaciones que se ejecutan en Amazon EC2 Instances en la Guía del AWS Identity and Access Management usuario.