

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.

# Configurar las credenciales de sesión
<a name="session-credentials-setup"></a>

## Paso 1: creación de un rol de IAM
<a name="session-credentials-step1"></a>

Cree un rol de IAM en su cuenta con un nombre que empiece por `GameLiftStreams-` y una política de confianza que permita al director del `gameliftstreams.amazonaws.com` servicio asumirlo.

**importante**  
El nombre del rol debe empezar por `GameLiftStreams-`. No puedes cambiar el nombre de un rol después de crearlo. Si usa un rol sin este prefijo, `StartStreamSession` devuelve un error. Para obtener más información, consulte [Solución de problemas de credenciales de sesión](session-credentials-troubleshooting.md).

Le recomendamos que `aws:SourceAccount` añada `aws:SourceArn` condiciones a su política de confianza. Estas condiciones utilizan el ID de su cuenta de AWS y restringen las sesiones que pueden asumir la función. Para obtener más información sobre la protección contra la suplantación de identidad entre servicios, consulte la guía del usuario de * IAM para evitar [ la ](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) Cross-service confusión entre agentes. *

```
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": { "Service": "gameliftstreams.amazonaws.com" },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringEquals": {
        "aws:SourceAccount": "{{123456789012}}"
      },
      "ArnLike": {
        "aws:SourceArn": "arn:aws:gameliftstreams:*:{{123456789012}}:streamsession/*"
      }
    }
  }]
}
```

Sustituya ambas apariciones de {{123456789012}} por su identificador. Cuenta de AWS 

**nota**  
[Service-linked los roles ](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) (identificados por los números ARN que contienen`/aws-service-role/`) no se pueden usar con esta función. En su lugar, cree un rol de IAM.

## Paso 2: Adjunte los permisos al rol
<a name="session-credentials-step2"></a>

Adjunte al rol políticas de IAM que otorguen solo los permisos que necesita su aplicación. Para obtener información sobre el alcance de los permisos, consulte [ Concesión del privilegio mínimo ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) en la guía del usuario de * IAM. *

Por ejemplo, si su aplicación necesita leer desde un bucket de Amazon S3:

```
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:ListBucket"
    ],
    "Resource": [
      "arn:aws:s3:::{{my-game-assets-bucket}}",
      "arn:aws:s3:::{{my-game-assets-bucket}}/*"
    ]
  }]
}
```

## Paso 3: Conceder el permiso a iam: PassRole
<a name="session-credentials-step3"></a>

El director de IAM que llama `StartStreamSession` debe tener permiso para transferir el rol a Amazon GameLift Streams. Añada la siguiente declaración a la política de IAM del director. Para obtener más información, consulte [ Concesión de permisos a un usuario para transferir un rol a un AWS servicio ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la Guía del usuario de * IAM. *

```
{
  "Effect": "Allow",
  "Action": "iam:PassRole",
  "Resource": "arn:aws:iam::{{123456789012}}:role/GameLiftStreams-{{MyAppRole}}",
  "Condition": {
    "StringEquals": {
      "iam:PassedToService": "gameliftstreams.amazonaws.com"
    }
  }
}
```

## Paso 4: Inicie una sesión de transmisión con el rol
<a name="session-credentials-step4"></a>

Pase el ARN del rol al llamar [ StartStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_StartStreamSession.html):

```
aws gameliftstreams start-stream-session \
    --stream-group-identifier {{sg-1AB2C3De4}} \
    --application-identifier {{a-9ZY8X7Wv6}} \
    --protocol WebRTC \
    --signal-request "{{[webrtc-ice-offer json string]}}" \
    --user-id {{myUserId}} \
    --role-arn arn:aws:iam::{{123456789012}}:role/GameLiftStreams-{{MyAppRole}}
```

Si no se puede asumir el rol (por ejemplo, porque la política de confianza está mal configurada), `StartStreamSession` devuelve un. `ValidationException` La sesión no se inicia. Para obtener más información, consulte [Solución de problemas de credenciales de sesión](session-credentials-troubleshooting.md).