

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.

# Uso de permisos gestionados parametrizados en AWS RAM
<a name="parameterized-managed-permissions"></a>

Un permiso administrado parametrizado es un permiso administrado con marcadores de posición en las condiciones de la política que usted rellena con sus propios valores. Estos marcadores de posición son parámetros de plantilla. No crean un nuevo tipo de permiso administrado. Añaden variabilidad a la plantilla de políticas de una plantilla existente.

En lugar de crear un permiso gestionado por el cliente por separado para cada valor de condición único, se crea un permiso gestionado por el cliente con parámetros. Cuando lo asocias a un recurso compartido, proporcionas un valor para cada parámetro. AWS RAM sustituye sus valores en la plantilla de políticas y adjunta la política basada en recursos resultante a los recursos compartidos.

Por ejemplo, un equipo de plataforma central crea un permiso administrado por el cliente para AWS Systems Manager Parámetros del almacén de parámetros (tipo de recurso) `ssm:Parameter`). Otorga acceso de lectura solo a los directores con un certificado aprobado `team` etiqueta. El equipo de la plataforma comparte el permiso administrado por ese cliente con las cuentas de su organización. Luego, cada cuenta lo usa en sus propios recursos compartidos, que pueden contener uno o más parámetros del almacén de parámetros. En cada recurso compartido, la cuenta proporciona `team` valores de etiqueta de los principales que pueden leer los parámetros compartidos del almacén de parámetros.

**Topics**
+ [Tipos de parámetros de plantilla](#template-parameter-types)
+ [Reglas de sintaxis de plantillas de políticas](#template-syntax-rules)
+ [Crea un permiso administrado parametrizado](#create-parameterized-permission)
+ [Control de versiones de un permiso gestionado parametrizado](#parameterized-permission-versioning)
+ [Obtenga una vista previa de una plantilla de política representada](#preview-rendered-policy)
+ [Asocie un permiso administrado parametrizado a un recurso compartido](#associate-parameterized-permission)
+ [Vea los parámetros y valores de la plantilla](#view-template-parameters)
+ [Compartir permisos gestionados parametrizados entre cuentas](#sharing-parameterized-permissions)
+ [Controle los valores de los parámetros de la plantilla con políticas de IAM](#template-iam-condition-keys)
+ [`STRING_LIST` ejemplos de parámetros](#template-stringlist-examples)

## Tipos de parámetros de plantilla
<a name="template-parameter-types"></a>

AWS RAM admite dos tipos de parámetros. El tipo determina cómo AWS RAM sustituye el valor en la política renderizada. En el AWS RAM La API y el AWS CLI, los tipos son `STRING` y `STRING_LIST`. El AWS RAM la consola los muestra como **Cadena** y **StringList**.

**`STRING`**  
Acepta exactamente un valor de cadena.  
+ Puede usar un `STRING` parámetro en una clave de condición o en un valor de condición.
+ Puede incrustar un `STRING` parámetro en otro texto. Por ejemplo, `"arn:aws:iam::@{accountId}:role/Auditor"`.
+ El valor representado es siempre una cadena. Como los operadores de condiciones de IAM convierten las cadenas en el tipo con el que comparan, `STRING` El parámetro puede proporcionar valores numéricos, booleanos, de fecha, de dirección IP o de ARN.

**`STRING_LIST`**  
Acepta de 1 a 100 valores de cadena.  
+ Puede usar un `STRING_LIST` parámetro solo en un valor de condición, no en una clave de condición.
+ Si el valor de la condición es una cadena única que contiene solo el parámetro, por ejemplo `"@{teams}"`, AWS RAM representa una matriz de los valores que usted proporciona. Si proporciona un valor único, AWS RAM representa una sola cadena.
+ Si el valor de la condición contiene texto antes o después del parámetro, por ejemplo `"arn:aws:iam::@{accountIds}:role/ParameterReader"`, AWS RAM combina cada valor con ese texto.
+ Para combinar cada valor con más de una cadena, liste las cadenas en una matriz de valores de condición. AWS RAM representa cada entrada de matriz para cada valor y elimina los resultados duplicados. El resultado es siempre una matriz.
+ AWS RAM e IAM no divide una cadena por comas. Una cadena separada por comas se compara como un valor.
Para ver ejemplos, consulte [`STRING_LIST` ejemplos de parámetros](#template-stringlist-examples).

## Reglas de sintaxis de plantillas de políticas
<a name="template-syntax-rules"></a>

Al agregar parámetros a la plantilla de políticas de un permiso administrado, se aplican las siguientes reglas. Si una solicitud infringe una de estas reglas, AWS RAM la rechaza con un `InvalidParameterException` o `InvalidPolicyException` error.
+ Un marcador de posición de parámetros utiliza la sintaxis `@{parameterName}`.
+ Los nombres de los parámetros pueden contener letras (a-z, A-Z), números (0-9), dos puntos (:), guiones (-) y guiones bajos (\_). Los nombres deben ser únicos en una versión de permisos administrados y la comparación no tiene en cuenta las mayúsculas y minúsculas.
+ Debe declarar cada parámetro al crear el permiso o la versión del permiso. Cada declaración requiere un nombre, un tipo y una descripción. La descripción puede tener hasta 255 caracteres.
+ Todos los parámetros declarados deben aparecer en la plantilla de políticas.
+ Los marcadores de posición coinciden exactamente con los nombres declarados, incluidas las mayúsculas y minúsculas. El texto del `@{...}` el formato que no coincide exactamente con un nombre declarado permanece en la política como texto literal. Por ejemplo, si declaras `teams` pero escribe `@{Teams}`, AWS RAM regalos `@{Teams}` como texto y rechaza la solicitud porque `teams` no se usa.
+ Los parámetros solo pueden aparecer en `Condition` elemento, como clave de condición o como valor de condición. AWS RAM rechaza los parámetros del `Effect`, `Action`, o cualquier otro elemento.
+ Una clave de condición puede contener como máximo un parámetro y debe ser un `STRING` parámetro. Un valor de condición puede contener más de un parámetro, por ejemplo `"@{project}-@{stage}"`. Cuando el valor de una condición se combina `STRING_LIST` parámetros, AWS RAM representa cada combinación de sus valores, hasta 100 cadenas para cada valor de condición.
+ Puede declarar hasta 100 parámetros para cada versión de permiso administrado.
+ Los parámetros no tienen valores predeterminados. Al asociar el permiso a un recurso compartido, debe proporcionar un valor que no esté vacío para cada parámetro declarado y no puede proporcionar un nombre que no esté declarado ni proporcionar el mismo nombre dos veces.

## Crea un permiso administrado parametrizado
<a name="create-parameterized-permission"></a>

Crea un permiso administrado parametrizado de la misma manera que crea cualquier otro permiso administrado de cliente. La diferencia es que usted declara los parámetros y los usa `@{parameterName}` marcadores de posición en las condiciones de la plantilla de política.

------
#### [ Console ]

**Para crear un permiso administrado parametrizado**

1. Abra el **[Biblioteca de permisos administrados](https://console.aws.amazon.com/ram/home#Permissions:)** y elige **Cree un permiso administrado por el cliente**.

1. Bajo **Detalles de los permisos gestionados por el cliente**, introduzca un nombre y elija el tipo de recurso.

1. En **Plantilla de política**, introduzca la política. Utilice `@{parameterName}` marcadores de posición en las condiciones en las que desea que cada recurso compartido suministre su propio valor.

1. Bajo **Parámetros de plantilla**, elige **Agregar parámetros desde la política** para agregar una fila para cada marcador de posición de la política, o bien elija **Agregar parámetro** para añadir una fila a la vez. Para cada parámetro, introduzca **Nombre del parámetro**, elija el **Escriba** (**Cadena** o **StringList**) e introduzca un **Descripción**. La descripción se muestra a todos los que proporcionan un valor para el parámetro.

1. (Opcional) Agregue etiquetas.

1. Elija **Cree un permiso administrado por el cliente**.

------
#### [ AWS CLI ]

**Para crear un permiso administrado parametrizado**
+ Ejecute el [permiso de creación](https://docs.aws.amazon.com/cli/latest/reference/ram/create-permission.html) comando con `--policy-template` y `--permission-template-parameters` parámetros.

  El siguiente ejemplo crea un permiso administrado por el cliente para `ssm:Parameter` tipo de recurso. En esta política, los directores solo pueden leer los parámetros si el principal tiene un `team` etiqueta cuyo valor está en `teams` lista.

  ```
  $ aws ram create-permission \
      --name ParameterReadByTeam \
      --resource-type ssm:Parameter \
      --permission-template-parameters '[{"name":"teams","type":"STRING_LIST","description":"Values of the team principal tag that can read the shared parameters"}]' \
      --policy-template '{"Effect":"Allow","Action":["ssm:GetParameter","ssm:GetParameters"],"Condition":{"StringEquals":{"aws:PrincipalTag/team":"@{teams}"}}}'
  {
      "permission": {
          "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam",
          "version": "1",
          "defaultVersion": true,
          "name": "ParameterReadByTeam",
          "resourceType": "ssm:Parameter",
          "status": "ATTACHABLE",
          "creationTime": 1763300000.000,
          "lastUpdatedTime": 1763300000.000,
          "permissionTemplateParameters": [
              {
                  "name": "teams",
                  "type": "STRING_LIST",
                  "description": "Values of the team principal tag that can read the shared parameters"
              }
          ]
      }
  }
  ```

------

## Control de versiones de un permiso gestionado parametrizado
<a name="parameterized-permission-versioning"></a>

Los permisos gestionados parametrizados se versionan de la misma forma que cualquier otro permiso gestionado por el cliente. Cada versión declara sus parámetros de forma independiente, por lo que una nueva versión puede declarar un conjunto de parámetros diferente al de la versión anterior.

Para crear una nueva versión, ejecute [crear una versión con permiso](https://docs.aws.amazon.com/cli/latest/reference/ram/create-permission-version.html) comando con `--policy-template` y `--permission-template-parameters` parámetros. En el siguiente ejemplo, se agrega una segunda condición con `STRING` parámetro denominado `environment`.

```
$ aws ram create-permission-version \
    --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \
    --permission-template-parameters '[{"name":"teams","type":"STRING_LIST","description":"Values of the team principal tag that can read the shared parameters"},{"name":"environment","type":"STRING","description":"Value of the environment principal tag that can read the shared parameters"}]' \
    --policy-template '{"Effect":"Allow","Action":["ssm:GetParameter","ssm:GetParameters"],"Condition":{"StringEquals":{"aws:PrincipalTag/team":"@{teams}","aws:PrincipalTag/environment":"@{environment}"}}}'
```

Una nueva versión se convierte en la versión predeterminada en cuanto la creas. Los recursos compartidos existentes conservan la versión que utilizan. Cuando el propietario de un recurso compartido lo actualiza a la nueva versión, debe proporcionar valores para los parámetros que declara la nueva versión. Para obtener más información, consulte [Actualización AWS permisos administrados para una versión más reciente](working-with-sharing-update-permissions.md).

Para obtener más información sobre cómo funcionan las versiones de permisos administrados por el cliente y las versiones predeterminadas, consulte [Creación y uso de permisos gestionados por el cliente en AWS RAM](create-customer-managed-permissions.md).

## Obtenga una vista previa de una plantilla de política representada
<a name="preview-rendered-policy"></a>

Antes de asociar un permiso administrado parametrizado a un recurso compartido, puede obtener una vista previa de la política que AWS RAM renderizados a partir de valores de parámetros específicos.

En el AWS RAM cuando crees o actualices un recurso compartido, introduce los valores en **Valores de los parámetros de la plantilla** y elija **Vista previa de la política renderiz**.

En el AWS CLI, ejecuta el [obtener permiso](https://docs.aws.amazon.com/cli/latest/reference/ram/get-permission.html) comando con `--permission-template-parameters` parámetro. El `permission` El campo de la respuesta contiene la política con sus valores en lugar de los marcadores de posición.

```
$ aws ram get-permission \
    --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \
    --permission-template-parameters '[{"name":"teams","values":["payments","analytics"]},{"name":"environment","values":["prod"]}]'
{
    "permission": {
        "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam",
        "version": "2",
        "defaultVersion": true,
        "name": "ParameterReadByTeam",
        "resourceType": "ssm:Parameter",
        "permission": "{\"Effect\":\"Allow\",\"Action\":[\"ssm:GetParameter\",\"ssm:GetParameters\"],\"Condition\":{\"StringEquals\":{\"aws:PrincipalTag/team\":[\"payments\",\"analytics\"],\"aws:PrincipalTag/environment\":\"prod\"}}}",
        "creationTime": 1763400000.000,
        "lastUpdatedTime": 1763400000.000,
        "isResourceTypeDefault": false,
        "permissionType": "CUSTOMER_MANAGED",
        "featureSet": "STANDARD",
        "status": "ATTACHABLE",
        "permissionTemplateParameters": [
            {
                "name": "teams",
                "type": "STRING_LIST",
                "description": "Values of the team principal tag that can read the shared parameters"
            },
            {
                "name": "environment",
                "type": "STRING",
                "description": "Value of the environment principal tag that can read the shared parameters"
            }
        ]
    }
}
```

Sin el `--permission-template-parameters` parámetro, el `get-permission` el comando devuelve la plantilla de política con el `@{parameterName}` marcadores de posición. El `permissionTemplateParameters` el campo muestra el nombre, el tipo y la descripción de cada parámetro declarado.

## Asocie un permiso administrado parametrizado a un recurso compartido
<a name="associate-parameterized-permission"></a>

Al asociar un permiso administrado parametrizado a un recurso compartido, debe proporcionar valores para todos los parámetros que declara la versión. AWS RAM representa la plantilla de política con sus valores y adjunta la política basada en recursos resultante a los recursos compartidos de ese tipo.

------
#### [ Console ]

**Para asociar un permiso administrado parametrizado a un recurso compartido**

1. Al crear o actualizar un recurso compartido, en **Asocie los permisos gestionados** página, elija el permiso administrado parametrizado para el tipo de recurso.

1. En **Valores de los parámetros de la plantilla**, introduzca un valor para cada parámetro. Para un **StringList** parámetro, pulse Entrar después de cada valor o pegue los valores separados por líneas nuevas.

1. (Opcional) Elija **Previsualizar la política renderizada** para comprobar la política que AWS RAM adjuntará.

1. Completa el resto del asistente. La página de revisión muestra los valores de **Valores de los parámetros de la plantilla**.

------
#### [ AWS CLI ]

**Para asociar un permiso administrado parametrizado a un recurso compartido**

1. Ejecute [crear-recursos-compartir](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) o [associate-resource-share-permission](https://docs.aws.amazon.com/cli/latest/reference/ram/associate-resource-share-permission.html) con el `--permission-template-parameters` parámetro.

   Para `create-resource-share`, el parámetro es una lista. Cada entrada contiene un `permissionArn` y el `permissionTemplateParameters` valores para ese permiso. En el siguiente ejemplo, se crea un recurso compartido que comparte un parámetro de Parameter Store con otro Cuenta de AWS. Directores con el `team` etiqueta `payments` o `analytics` y el `environment` etiqueta `prod` puede leerlo.

   ```
   $ aws ram create-resource-share \
       --name PaymentsConfig \
       --resource-arns arn:aws:ssm:us-east-1:123456789012:parameter/payments/endpoint \
       --principals 111122223333 \
       --permission-arns arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \
       --permission-template-parameters '[{"permissionArn":"arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam","permissionTemplateParameters":[{"name":"teams","values":["payments","analytics"]},{"name":"environment","values":["prod"]}]}]'
   {
       "resourceShare": {
           "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
           "name": "PaymentsConfig",
           "owningAccountId": "123456789012",
           "allowExternalPrincipals": true,
           "status": "ACTIVE",
           "creationTime": 1763300000.000,
           "lastUpdatedTime": 1763300000.000,
           "featureSet": "STANDARD"
       }
   }
   ```

   `create-resource-share` siempre usa la versión predeterminada de cada permiso administrado. Solo puede asociar la versión predeterminada de un permiso administrado a un recurso compartido.

1. Para cambiar los valores de los parámetros de un recurso compartido existente o para moverlo a la versión predeterminada del permiso, ejecute [associate-resource-share-permission](https://docs.aws.amazon.com/cli/latest/reference/ram/associate-resource-share-permission.html) con el `--replace` parámetro. Para este comando, `--permission-template-parameters` toma los valores de los parámetros directamente.

   ```
   $ aws ram associate-resource-share-permission \
       --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
       --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \
       --permission-template-parameters '[{"name":"teams","values":["payments"]},{"name":"environment","values":["prod"]}]' \
       --replace
   {
       "returnValue": true
   }
   ```

------

Para mover muchos recursos compartidos de una versión o permiso a otra, ejecute [reemplazar asociaciones de permisos](https://docs.aws.amazon.com/cli/latest/reference/ram/replace-permission-associations.html). Si la versión de destino declara parámetros, incluya `--permission-template-parameters`. AWS RAM aplica los mismos valores a todos los recursos compartidos que actualiza el comando.

## Vea los parámetros y valores de la plantilla
<a name="view-template-parameters"></a>

Puede ver los parámetros que declara un permiso administrado y los valores que proporcionan sus recursos compartidos.

**Vea los parámetros que declara un permiso administrado**  
Ejecute el [obtener permiso](https://docs.aws.amazon.com/cli/latest/reference/ram/get-permission.html) comando. El `permissionTemplateParameters` el campo muestra el nombre, el tipo y la descripción de cada parámetro. En la consola, la página de detalles del permiso muestra la misma información.

**Vea los valores que proporciona un recurso compartido**  
Ejecute el [list-resource-share-permissions](https://docs.aws.amazon.com/cli/latest/reference/ram/list-resource-share-permissions.html) comando. Para cada permiso gestionado parametrizado asociado, el `permissionTemplateParameters` El campo incluye los valores que proporciona el recurso compartido.  

```
$ aws ram list-resource-share-permissions \
    --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
{
    "permissions": [
        {
            "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam",
            "version": "2",
            "defaultVersion": true,
            "name": "ParameterReadByTeam",
            "resourceType": "ssm:Parameter",
            "status": "ATTACHABLE",
            "creationTime": 1763400000.000,
            "lastUpdatedTime": 1763400000.000,
            "isResourceTypeDefault": false,
            "permissionType": "CUSTOMER_MANAGED",
            "featureSet": "STANDARD",
            "permissionTemplateParameters": [
                {
                    "name": "teams",
                    "values": ["payments"]
                },
                {
                    "name": "environment",
                    "values": ["prod"]
                }
            ]
        }
    ]
}
```
El [asociaciones de permisos de lista](https://docs.aws.amazon.com/cli/latest/reference/ram/list-permission-associations.html) El comando también devuelve los valores de los recursos compartidos de su propiedad. Cuando se enumeran los recursos compartidos en otros Cuentas de AWS que utilizan un permiso administrado por el cliente que compartiste, la respuesta no incluye sus valores.

## Compartir permisos gestionados parametrizados entre cuentas
<a name="sharing-parameterized-permissions"></a>

Puedes compartir un permiso gestionado parametrizado con otras Cuentas de AWS como cualquier otro permiso gestionado por un cliente. Las cuentas receptoras pueden ver el nombre, el tipo y la descripción de cada parámetro, por lo que debes escribir descripciones que les indiquen qué valor deben proporcionar. Cada cuenta receptora proporciona sus propios valores cuando asocia el permiso administrado compartido a sus propios recursos compartidos.

Para obtener instrucciones sobre cómo compartir los permisos administrados por los clientes, consulte [Compartir y usar los permisos gestionados por los clientes en todas las cuentas de AWS RAM](sharing-customer-managed-permissions.md).

## Controle los valores de los parámetros de la plantilla con políticas de IAM
<a name="template-iam-condition-keys"></a>

Puede utilizar el `ram:PermissionTemplateParameter/{{parameter-name}}` la clave de condición de una política de IAM para controlar los valores que un principal puede proporcionar para un parámetro. La clave tiene varios valores y contiene los valores de la solicitud del parámetro con nombre. Está disponible en el recurso de permisos para `ram:CreateResourceShare`, `ram:AssociateResourceSharePermission`, y `ram:ReplacePermissionAssociations` acciones.

En el siguiente ejemplo de política, la primera declaración otorga las acciones del `ParameterReadByTeam` permiso gestionado por el cliente. La segunda declaración los niega si se proporciona algún valor para `teams` es algo diferente a `payments` o `analytics`. Como la clave tiene varios valores, la política utiliza el `ForAnyValue` establecer operador. AWS RAM requiere un valor para cada parámetro declarado, por lo que una solicitud que utilice este permiso administrado por el cliente siempre incluye la clave.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ram:CreateResourceShare",
                "ram:AssociateResourceSharePermission",
                "ram:ReplacePermissionAssociations"
            ],
            "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ram:CreateResourceShare",
                "ram:AssociateResourceSharePermission",
                "ram:ReplacePermissionAssociations"
            ],
            "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam",
            "Condition": {
                "ForAnyValue:StringNotEquals": {
                    "ram:PermissionTemplateParameter/teams": [
                        "payments",
                        "analytics"
                    ]
                }
            }
        }
    ]
}
```

Estas declaraciones solo controlan el recurso de permisos. El principal también necesita permiso para los demás recursos de la solicitud, como el recurso compartido y los recursos que comparte. Para obtener más ejemplos, consulte [Ejemplos de políticas de IAM para AWS RAM](security-iam-policies-examples.md).

## `STRING_LIST` ejemplos de parámetros
<a name="template-stringlist-examples"></a>

Los siguientes ejemplos muestran cómo AWS RAM renderizados `STRING_LIST` parámetros.

**Example UN `STRING_LIST` parámetro solo en un valor de condición**  
Plantilla:  

```
"Condition": {
    "StringEquals": {
        "aws:PrincipalTag/team": "@{teams}"
    }
}
```
Valores: `["payments", "analytics"]`  
Política renderizada:  

```
"Condition": {
    "StringEquals": {
        "aws:PrincipalTag/team": ["payments", "analytics"]
    }
}
```
Con el valor único `["payments"]`, el valor representado es la cadena `"payments"`.

**Example UN `STRING_LIST` parámetro con texto circundante**  
AWS RAM combina cada valor con el texto anterior y posterior al parámetro.  
Plantilla:  

```
"Condition": {
    "ArnLike": {
        "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader"
    }
}
```
Valores: `["111122223333", "444455556666"]`  
Política renderizada:  

```
"Condition": {
    "ArnLike": {
        "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/ParameterReader",
            "arn:aws:iam::444455556666:role/ParameterReader"
        ]
    }
}
```

**Example A `STRING_LIST` parámetro en una matriz de valores de condición**  
AWS RAM representa cada entrada de la matriz para cada valor y elimina los resultados duplicados.  
Plantilla:  

```
"Condition": {
    "ArnLike": {
        "aws:PrincipalArn": [
            "arn:aws:iam::@{accountIds}:role/Auditor",
            "arn:aws:iam::@{accountIds}:role/Reader"
        ]
    }
}
```
Valores: `["111122223333", "444455556666"]`  
Política renderizada:  

```
"Condition": {
    "ArnLike": {
        "aws:PrincipalArn": [
            "arn:aws:iam::111122223333:role/Auditor",
            "arn:aws:iam::444455556666:role/Auditor",
            "arn:aws:iam::111122223333:role/Reader",
            "arn:aws:iam::444455556666:role/Reader"
        ]
    }
}
```