Prevención de adjuntos confusos en Amazon AppStream 2.0 Cross-Service - Amazon AppStream 2.0.

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.

Prevención de adjuntos confusos en Amazon AppStream 2.0 Cross-Service

El problema confuso es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción obliga a una entidad con más privilegios a realizar la acción. EnAWS, la suplantación entre servicios puede dejar a los recursos de cuenta confuso. La suplantación entre servicios se produce cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas puede manipular el servicio al que se llama para utilizar sus permisos a fin de actuar en función de los recursos de un cliente de forma que el servicio que lleva a cabo las llamadas no tiene permiso para actuar por sí mismo. Para evitarlo,AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio que tienen acceso a los recursos de su cuenta.

Recomendamos utilizar las claves de contextoaws:SourceArn y las condicionesaws:SourceAccount globales en las políticas de recursos para limitar los permisos al acceder a estos recursos. Las siguientes pautas detallan las recomendaciones y los requisitos a la hora de utilizar estas claves para proteger sus recursos:

  • Utiliceaws:SourceArn si desea que solo se asocie un recurso al acceso entre servicios.

  • Se utilizaaws:SourceAccount si quiere permitir cualquier recurso de la cuenta especificando que se asocie al uso entre servicios.

  • Si laaws:SourceArn clave no contiene un ID de cuenta, debe utilizar tanto las clavesaws:SourceArn deaws:SourceAccount contexto de condición globales de

  • Si se utilizan ambas claves de contexto de condición globales y elaws:SourceArn valor contiene un ID de cuenta, laaws:SourceAccount clave debe utilizar el mismo ID de cuenta cuando se utilice en la misma declaración de política.

La forma más eficaz de protegerse contra el problema de suplconfuso es utilizar el nombre de recurso (ARN) exacto del recurso que desea permitir. Si no conoce el ARN completo del recurso, utilice la clave de condición de contextoaws:SourceArn global con comodines (como*) para las partes desconocidas del ARN. También puede utilizar un comodín en el ARN si quiere especificar varios recursos. Por ejemplo, puede formatear el ARN comoarn:aws:servicename::region-name::your Cuenta de AWS ID:*.

Ejemplo: función de servicio AppStream 2.0, prevención de adjuntos confusa entre servicios

AppStream 2.0 asume una función de servicio mediante una variedad de ARN de recursos, lo que lleva a una declaración condicional complicada. Se recomienda utilizar un tipo de recurso comodín para evitar cualquier error inesperado en los recursos AppStream 2.0.

ejemplo aws:SourceAccountCondicional:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your Cuenta de AWS ID" } } } ] }
ejemplo aws:SourceArnCondicional:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Cuenta de AWS ID}:*" } } } ] }

Ejemplo: función de máquina de flota AppStream 2.0, prevención de adjuntos confusa entre servicios

ejemplo aws:SourceAccountCondicional:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your Cuenta de AWS ID" } } } ] }
ejemplo aws:SourceArnCondicional:
nota

Si quieres usar un rol de IAM para varias flotas, te recomendamos que utilices la clave de condición de contextoaws:SourceArn global con caracteres comodín (*) para hacer coincidir varios recursos de flota AppStream 2.0.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Cuenta de AWS ID}:fleet/{your fleet name}" } } } ] }

Ejemplo: AppStream 2.0 Secuencia de comandos de sesión de Elastic Fleets Política de cubos de Amazon S3 prevención de diputados confusos entre servicios

ejemplo aws:SourceAccountCondicional:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "s3:GetObject", "Resource": "your session script S3 path", "Condition": { "StringEquals": { "aws:SourceAccount": "your Cuenta de AWS ID" } } } ] }
ejemplo aws:SourceArnCondicional:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "appstream.amazonaws.com" ] }, "Action": "s3:GetObject", "Resource": "your session script S3 path", "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your Cuenta de AWS ID}:fleet/{your fleet name}" } } } ] }

Ejemplo: Política de bucket de Amazon S3 de la aplicación AppStream 2.0, prevención de adjuntos confusos entre servicios

Cuando se almacenan datos en un bucket de Amazon S3, es posible que el bucket se vea confuso. Esto puede hacer que datos como las flotas de Elastic, los bloques de aplicaciones, los scripts de configuración, los iconos de aplicaciones y los scripts de sesión sean vulnerables a actores malintencionados.

Para evitar problemas de subalternos confusos, puede especificar laaws:SourceAccount condición o laaws:SourceArn condición en la política de bucket de Amazon S3 paraELASTIC-FLEET-EXAMPLE-BUCKET.

Las siguientes políticas de recursos muestran cómo evitar el confuso problema de los diputados mediante una de las siguientes opciones:

  • Elaws:SourceAccount con el IDAWS de tu cuenta

  • La clave de contexto de condición globalesaws:SourceArn

AppStream Actualmente, 2.0 no admite la prevención indirecta confusa para los íconos de las aplicaciones. El servicio solo admite archivos VHD y scripts de configuración. Si intenta añadir condiciones adicionales para los iconos de las aplicaciones, los iconos no se mostrarán a los usuarios finales.

En el siguiente ejemplo, la política de bucket solo permite el acceso a los recursos de la flota AppStream 2.0 de Elastic de la cuenta del propietarioELASTIC_FLEET_EXAMPLE_BUCKET.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "your Cuenta de AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

También puede usar laaws:SourceArn condición para limitar el acceso a recursos específicos.

nota

Si no conoce el ARN completo de un recurso o si quiere especificar varios recursos, utilice la clave de condición de contextoaws:SourceArn global con comodines (*) para las partes desconocidas del ARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws-partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Puede utilizar lasaws:SourceAccount condicionesaws:SourceArn y para limitar el acceso a los recursos para cuentas y recursos específicos.

nota

Si no conoce el ARN completo de un recurso o si quiere especificar varios recursos, utilice la clave de condición de contextoaws:SourceArn global con comodines (*) para las partes desconocidas del ARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }