Creación de plantillas de perfiles de confianza gestionadas por la empresa

En una empresa en la que se tienen muchas cuentas secundarias, configurar manualmente perfiles de confianza en cada cuenta puede llevar mucho tiempo y ser propenso a errores. Utilice plantillas de perfil de confianza para conceder de forma dinámica a los usuarios federados acceso a las cuentas de su empresa.

Puede establecer confianza solo con usuarios federados cuando utiliza plantillas de perfiles de confianza gestionadas por la empresa. Para configurar perfiles de confianza en cuentas secundarias para recursos informáticos, servicios de IBM Cloud e ID de servicio, consulte Creación de perfiles de confianza.

Un usuario no necesita ser miembro de una cuenta para aplicar un perfil de confianza. Un usuario puede aplicar un perfil si tiene el mismo proveedor de identidad ( IdP ) que el perfil de confianza y cumple las condiciones de confianza. Por ejemplo, un usuario de su directorio empresarial necesita acceder a un grupo de cuentas para realizar una tarea específica. Cree una plantilla de perfil de confianza con condiciones de confianza que se adapten a ese usuario y a las políticas que necesita. A continuación, asigne la plantilla de perfil de confianza a las cuentas a las que necesiten acceder. Ahora, el usuario puede cambiar de cuenta aplicando el perfil de confianza en cada cuenta, y tiene acceso consistente en todas las cuentas.

Los administradores del servicio de identidad pueden añadir relaciones y políticas de confianza al perfil de confianza gestionado por la empresa en su cuenta, pero no pueden modificar las que usted define en la plantilla.

Antes de empezar

  • Antes de comenzar, debe Habilitar la autenticación de un proveedor de identidad externo.

  • Para obtener más información sobre cómo las plantillas de IAM gestionadas por la empresa hacen que su empresa sea más segura, consulte Cómo funciona el acceso a IAM gestionado por la empresa.

  • Debe ser miembro de la cuenta de empresa para crear y asignar plantillas de IAM gestionadas por la empresa.

  • Para crear una plantilla de IAM gestionada por la empresa, asegúrese de que se le ha asignado el siguiente acceso:

    • Una política con el rol de «Administrador de plantillas» en todos los servicios de gestión de cuentas de IAM
  • Para asignar una plantilla de IAM gestionada por la empresa a cuentas secundarias, asegúrese de que se le ha asignado el siguiente acceso:

    • Una política con el rol de Administrador de asignación de plantillas en todos los servicios de gestión de cuentas de IAM
    • Una política con al menos el rol de Visor en el servicio Enterprise

    De forma predeterminada, ningún usuario tiene los roles de Administrador de plantillas o Administrador de asignación de plantillas, incluido el propietario de la cuenta.

  • Las cuentas nuevas y existentes en su empresa deben optar por IAM gestionado por la empresa. Para obtener más información, consulte Optar por la IAM gestionada por la empresa.

Creación de una plantilla de perfil de confianza

Considere la posibilidad de utilizar plantillas de perfil de confianza cuando los usuarios necesiten acceder a muchas cuentas secundarias o si un grupo de usuarios necesita acceso temporal a varias cuentas secundarias.

Para crear una plantilla de perfil de confianza, sigue estos pasos:

  1. Vaya a Gestionar > Acceso (IAM) > Plantillas y seleccione Perfiles de confianza en la consola IBM Cloud.

  2. Pulse Crear.

  3. Introduzca un nombre y una descripción para la plantilla de perfil de confianza que describa su finalidad para los usuarios empresariales.

  4. Introduzca un nombre, una dirección de correo electrónico y una descripción para el perfil de confianza gestionado por la empresa que describa su finalidad para los usuarios de cuentas secundarias, y asegúrese de incluir en la descripción una lista de las acciones disponibles para este perfil de confianza.

    En el correo electrónico, puedes añadir una dirección de correo electrónico personal o una lista de distribución.

    Puede utilizar variables de sustitución en el nombre del perfil para personalizarlo para cada cuenta. Se admiten las siguientes variables:

    • ${template_id}: Se sustituirá por un identificador único para el modelo de perfil de confianza.
    • ${template_name}: Se sustituirá por el nombre actual del modelo de perfil de confianza.
    • ${template_version}: Se sustituirá por la versión actual del modelo de perfil de confianza.
    • ${account_id}: Se sustituirá por el identificador de la cuenta a la que está asignada la plantilla de perfil de confianza.
    • ${account_name}: Se sustituirá por el nombre de la cuenta a la que está asignada la plantilla de perfil de confianza.

    Los cambios en valores como el nombre de cuenta no provocan la actualización del nombre del perfil de confianza. El nombre del perfil se establece cuando se asigna la plantilla a una cuenta o se actualiza la versión de la plantilla. Esto significa que si el nombre de la cuenta cambia más tarde, el nombre del perfil no se actualizará automáticamente. El nuevo nombre de cuenta sólo se utilizará la próxima vez que asigne la plantilla o la actualice.

  5. Pulse Crear.

(Opcional) Añadir relaciones de confianza

Usuarios individuales

Establezca la confianza con usuarios individuales dentro o fuera de su cuenta utilizando su ID de IAM en IBM Cloud.

Para establecer confianza, complete los siguientes pasos:

  1. Haz clic en Relación de confianza > Usuarios individuales.
  2. Haga clic en Añadir y seleccione Usuarios de la cuenta o Usuarios externos para invitar a miembros de la empresa y asignar la plantilla.
    1. Haga clic en Usuarios de la cuenta para añadir un usuario a su cuenta.
      1. Seleccione un usuario o varios usuarios.
      2. Haga clic en Añadir para añadir el usuario a un perfil asociado.
    2. Haga clic en Usuarios externos para añadir usuarios que no estén en su cuenta.
      1. Introduzca el ID de IAM.
      2. Introduzca los identificadores de cuenta asociados. Puede añadir más de una cuenta, y puede incluir una cuenta que sea diferente de aquella en la que el usuario está trabajando actualmente.
      3. (Opcional) Especifique una descripción.
      4. Haga clic en Añadir para añadir el usuario a un perfil asociado.

Haga clic en el ícono Acciones junto a los usuarios que desea editar o eliminar, seleccionando Agregar o Eliminar.

Usuarios federados

Genera confianza entre los usuarios federados creando condiciones basadas en los atributos de tu directorio corporativo. Cuando los usuarios federados cumplen las condiciones que usted define, pueden aplicar el perfil.

Para establecer confianza, complete los siguientes pasos:

  1. Haga clic en Relación de confianza > Usuarios federados.
  2. Haga clic en Añadir y seleccione Usuarios federados por IBMid o **Usuarios federados por IBM Cloud AppID como método de autenticación e introduzca el proveedor de identidad predeterminado (**IdP ).
  3. Añada condiciones basadas en los datos de IdP para definir cómo y cuándo pueden aplicar el perfil los usuarios federados.
    1. Haga clic en Añadir una condición para definir varias condiciones. Los usuarios federados deben cumplir todas las condiciones para que se les aplique el perfil de confianza. Para obtener más información sobre los campos que se utilizan para crear condiciones, consulte Propiedades de condición IAM.
    2. Consulta los datos del proveedor de identidad para buscar nombres y valores de atributos en tus propios datos personales desde IdP. Para obtener más información, consulte Utilización de datos de IdP para crear perfiles de confianza.
  4. Defina la duración de la sesión durante cuánto tiempo un usuario puede aplicar el perfil antes de que se deba volver a autenticar.
  5. Pulse Añadir.

Haga clic en el ícono Acciones junto a los usuarios federados que desea editar o eliminar, seleccionando Agregar o Eliminar.

Recursos de cálculo

Establezca la confianza con los recursos informáticos para permitir que los programas que se ejecutan en un clúster específico accedan de forma segura a los recursos necesarios.

Para establecer confianza, complete los siguientes pasos:

  1. Haga clic en Relación de confianza > Recursos informáticos.
  2. Haga clic en Añadir y seleccione un servicio informático.
  3. Haga clic en Añadir una condición para definir varias condiciones. Para obtener más información sobre los campos que se utilizan para crear condiciones, consulte Propiedades de condición IAM.
  4. Pulse Añadir.

Haga clic en el ícono Acciones junto al recurso computacional que desea editar o eliminar, seleccionando Agregar o Quitar.

Servicios de IBM Cloud

Establecer la confianza con los servicios de IBM Cloud permitiendo la instancia de un servicio en nube identificado por su nombre de recurso en nube.

Para establecer confianza, complete los siguientes pasos:

  1. Haga clic en Relación de confianza > IBM Cloud services.
  2. Haga clic en Añadir e introduzca el CRN.
  3. (Opcional) Especifique una descripción.
  4. Pulse Añadir.

Haga clic en el ícono Acciones junto al servicio IBM Cloud que desea editar o eliminar, seleccionando Agregar o Eliminar.

ID de servicio

Establecer la confianza con los identificadores de servicio mediante la autenticación de los servicios. Se puede crear un ID de servicio para un servicio específico, con claves API que se generan para autenticarlo de forma segura. Además, el ID de servicio puede asumir un perfil de confianza, heredando permisos y accediendo a los recursos según sea necesario.

Para establecer confianza, complete los siguientes pasos:

  1. Haga clic en Relación de confianza > ID de servicio.
  2. Haga clic en Añadir e introduzca un ID de servicio.
  3. (Opcional) Especifique una descripción.
  4. Pulse Añadir.

Haga clic en el ícono Acciones junto al ID de servicio que desea editar o eliminar, seleccionando Agregar o Eliminar.

(Opcional) Añadir políticas de acceso

Las políticas de acceso conceden acceso en cuentas secundarias a los usuarios federados que pueden aplicar el perfil.

  1. Haga clic en Acceso > Añadir.

  2. Introduzca un nombre y describa la política que desea asignar.

    Usted crea una plantilla de política con cada política que configure para una plantilla de perfil de confianza. Puede hacer referencia a una plantilla de política para asignar acceso en otras plantillas de IAM de la empresa.

  3. Seleccione un servicio o grupo de servicios y haga clic en Siguiente.

  4. Amplíe el acceso a Todos los recursos o seleccione Recursos específicos basados en atributos y haga clic en Siguiente.

  5. En la sección Funciones y acciones, seleccione las funciones que definen el ámbito de acceso. Puede crear plantillas de funciones personalizadas dentro de un flujo de plantillas de políticas y también seleccionar una función personalizada de las plantillas de funciones personalizadas existentes para el servicio seleccionado.

    1. Haga clic en Crear rol personalizado para definir una combinación personalizada de acciones.
    2. Entre un nombre de plantilla.
    3. (Opcional) Introduce una descripción de la plantilla.
    4. Introduce un nombre para el rol personalizado.
    5. Introduce un ID para el rol personalizado.
    6. (Opcional) Introduce una descripción para el rol personalizado.
    7. Seleccione las acciones y haga clic en Crear. El rol personalizado aparece en la lista y se selecciona junto con cualquier otro rol que ya esté seleccionado para la política.

    Utilice la barra de búsqueda para buscar funciones que admitan acciones concretas. Por ejemplo, busque leer, editar o ver para ver la lista de roles a los que se aplican estas acciones.

  6. (Opcional) Añada condiciones para especificar cuándo desea que la política conceda acceso.

  7. Pulse Añadir.

Eliminar políticas de acceso

Puede eliminar políticas antes de que se comprometa y asigne una plantilla.

Actualización de los detalles de la plantilla

Puede actualizar el nombre de la plantilla, el nombre del perfil de confianza y las descripciones en cualquier momento antes de confirmar la plantilla. Para actualizar los datos de la plantilla, sigue estos pasos:

  1. Ve a «Gestionar» > «Acceso (IAM)» > «Plantillas ».
  2. Seleccione la plantilla de perfil de confianza que desea actualizar.
  3. Haga clic en el icono Editar Icono Editar en la sección Detalles.
  4. Realice las actualizaciones necesarias en el nombre de la plantilla, el nombre del perfil de confianza y las descripciones.
  5. Pulse Guardar.

Si necesita realizar actualizaciones después de confirmar la plantilla, cree una nueva versión.

Revisión de tu plantilla de perfil de confianza

Revisar y comprometer la plantilla de perfil de confianza para que no se puedan realizar más cambios en la versión. De esta manera, el administrador de asignación de plantillas puede estar seguro de que asigna la versión solo cuando usted haya confirmado que está lista.

  1. Haga clic en Resumen > Revisar.
  2. Verifique que la plantilla de perfil de confianza esté configurada según sus expectativas.
  3. Haga clic en la casilla de verificación para confirmar que no puede realizar cambios en la versión.
  4. Pulse Confirmar.

Asignación de una plantilla de perfil de confianza a cuentas secundarias

Asigne la plantilla de perfil de confianza a las cuentas secundarias de su empresa.

Puede asignar una plantilla de IAM solo a cuentas secundarias y grupos de cuentas, no a la cuenta de empresa.

  1. Haga clic en Asignar cuentas.

  2. Seleccione las cuentas y grupos de cuentas a los que desea asignar la plantilla.

    En cada una de las cuentas infantiles a las que asignes la plantilla, crearás un perfil de confianza gestionado por la empresa. Los usuarios de la cuenta infantil pueden determinar que un perfil de confianza procede de una plantilla de IAM gestionada por la empresa mediante la etiqueta{: tag-cyan} [gestionada por la empresa] en el perfil.

  3. Pulse Asignar.

Si una asignación falla, haga clic en Reintentar.

Crear una nueva versión

Si desea realizar cambios en una plantilla de perfil de confianza que está confirmada o asignada, cree una nueva versión. Puede crear una nueva versión basada en su última versión, o una versión diferente que usted seleccione.

Para crear una nueva versión de una plantilla de perfil de confianza, sigue estos pasos:

  1. Ve a «Gestionar» > «Acceso (IAM)» > «Plantillas» en la consola de IBM Cloud.

  2. Elige tu plantilla de perfil de confianza.

  3. Haga clic en el icono Nueva versión. Icono Nueva versión..

  4. Seleccione la versión que desea como base para su nueva versión.

  5. Introduzca un nuevo nombre y descripción de plantilla o mantenga los que ya está utilizando.

    Al introducir un nuevo nombre de plantilla, se actualiza el nombre de la plantilla para esta versión y todas las versiones anteriores. La descripción de la plantilla se almacena por separado para cada versión.

  6. Introduce un nuevo nombre y descripción de perfil de confianza o mantén los que ya estás utilizando.

    Al introducir un nuevo nombre de perfil de confianza, se sustituye el nombre anterior que aparece en las cuentas secundarias una vez asignada la nueva versión.

  7. Seleccione los objetos que desea transferir a su nueva versión.

    1. (Opcional) Seleccionar Relaciones de confianza.
    2. (Opcional) Selecciona Acceso.
  8. Pulse Crear.

  9. Realiza cualquier otro ajuste en la configuración.

  10. Haga clic en Revisar y confirme la nueva versión. Para obtener más información, consulte Revisar su plantilla de perfil de confianza.

Para asignar una nueva versión de una plantilla de perfil de confianza, siga estos pasos:

  1. Ve a «Gestionar» > «Acceso (IAM)» > «Plantillas» en la consola de IBM Cloud.
  2. Haga clic en Perfiles de confianza.
  3. Haga clic en el icono de Expandir tabla. Icono de Expandir tabla. en la plantilla con la que desea trabajar.
  4. Seleccione la versión que está asignada actualmente a las cuentas secundarias.
  5. Haga clic en Asignaciones.
  6. Haga clic en Actualizar en la cuenta o en la asignación de grupo de cuentas donde desee asignar una versión diferente.
  7. Haz clic en « Seleccionar una versión ».
    1. Seleccione la versión que desea reemplazar por la versión actual.
  8. Pulse Actualizar.
  9. Repita estos pasos para cada cuenta o grupo de cuentas a las que desee asignar una versión diferente.

La nueva versión de plantilla que asignas reemplaza a la versión antigua. Más información sobre Asignación de una nueva versión.

Eliminar una asignación

Puede eliminar la asignación de una plantilla de una o varias cuentas a las que esté asignada. Puede que desee hacerlo si la plantilla no funciona como debería. Cuando eliminas una asignación de plantilla de una cuenta, por defecto se restablece la versión anterior de la plantilla. Si la asignación que eliminas es para la primera o única versión de una plantilla, se elimina el perfil de confianza en la cuenta secundaria.

Para eliminar una asignación, sigue estos pasos:

  1. Ve a «Gestionar» > «Acceso (IAM)» > «Plantillas» en la consola de IBM Cloud.
  2. Haga clic en Perfiles de confianza y seleccione su plantilla de perfil de confianza.
  3. Haga clic en Actualizar asignaciones.
    1. Para eliminar una asignación de una o varias cuentas, deseleccione las cuentas en las que desea eliminar la asignación de plantilla.
    2. Para eliminar una asignación de todas las cuentas en las que está asignada la plantilla, haga clic en Anular asignación de todas.

Creación de una plantilla de perfil de confianza mediante la CLI

Considere la posibilidad de utilizar plantillas de perfiles de confianza cuando tenga muchas cuentas secundarias que requieran el mismo perfil de confianza. Por ejemplo, su organización podría tener normas internas o exigir el cumplimiento de la normativa del sector.

Para crear una plantilla de perfil de confianza mediante la CLI, sigue estos pasos:

  1. Cree un archivo JSON que configure la definición de la plantilla de perfil de confianza. Para obtener más información sobre los atributos que puede utilizar en su archivo JSON, consulte la API de identidad IAM.

    El siguiente archivo JSON de ejemplo especifica el account_id de la cuenta de empresa, el name de la plantilla y la configuración de profile. Este perfil de confianza es para administradores de bases de datos. Se permite a un usuario específico aplicar la plantilla definida en identities. También se define rules, que concede acceso al perfil en función de los atributos de SAML.

       {
       "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
       "name": "dbadmintemplate",
       "profile": {
          "name": "Profile for DB Admins",
          "description": "allows users to admin db instances",
          "identities": [
                {
                   "type": "user",
                   "identifier": "IBMid-123456789",
                   "accounts": [
                      "5bbe28be34524sdbdaa34d37d1f2294a"
                   ]
                }
          ],
          "rules": [
                {
                   "type": "Profile",
                   "realm_name": "${IDP_REALM_NAME}",
                   "expiration": 43200,
                   "conditions": [
                      {
                            "claim": "group",
                            "operator": "EQUALS",
                            "value": "\"admins\""
                      }
                   ]
                }
          ]
       },
       "policy_template_references": [
          {
                "id": "Policy Template-12345",
                "version": 1
          }
       ]
    }
    
  2. Cree la plantilla de perfil de confianza utilizando el comando trusted-profile-template-create como se muestra en la siguiente solicitud de muestra:

    ibmcloud iam trustedprofile-template-create dbadmintemplate --file /path/to/db_trusted-profile_template.json
    

Actualización de una plantilla de perfil de confianza mediante la CLI

Puede actualizar una plantilla de perfil de confianza en cualquier momento antes de confirmarla. Para actualizar una versión específica de una plantilla de perfil de confianza, siga estos pasos:

  1. Actualice su archivo JSON con la nueva definición de plantilla de perfil de confianza. Para obtener más información sobre los atributos que puede utilizar en su archivo JSON, consulte la API de identidad IAM.

      {
      "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
      "name": "DBAdministrator",
      "profile": {
         "name": "Profile for DB Admins",
         "description": "allows users to admin db instances",
         "identities": [
               {
                  "type": "user",
                  "identifier": "IBMid-123456789",
                  "accounts": [
                     "5bbe28be34524sdbdaa34d37d1f2294a"
                  ]
               }
         ],
         "rules": [
               {
                  "type": "Profile",
                  "realm_name": "${IDP_REALM_NAME}",
                  "expiration": 43200,
                  "conditions": [
                     {
                           "claim": "group",
                           "operator": "EQUALS",
                           "value": "\"admins\""
                     }
                  ]
               }
         ]
      },
      "policy_template_references": [
         {
               "id": "Policy Template-12345",
               "version": 1
         }
      ]
    }
    
 Cuando actualizas el nombre de la plantilla, se actualiza el nombre de todas las versiones.
 {: note}

  1. Para actualizar una versión específica de una plantilla de perfil de confianza, utilice el comando `trusted-profile-template-version-update` como se muestra en la siguiente solicitud de ejemplo:

 ```bash {: codeblock}
 ibmcloud iam trustedpprofile-template-version-update DBAdministrator 1 --file /path/to/db_trusted-profile_template.json
## Configurar una plantilla de perfil de confianza mediante la CLI
{: #commit-trusted-profile-template-cli cli}

Revise la plantilla de perfil de confianza y confírmela para que no se puedan realizar más cambios en la versión. Comprometer una versión es un paso necesario antes de poder asignarla a cuentas secundarias. De esta manera, el administrador de asignación de plantillas puede estar seguro de que asigna la versión solo cuando usted haya confirmado que está lista.

La siguiente solicitud de muestra compromete la versión `1` de la plantilla de perfil de confianza denominada `DBAdministrator`:

```bash {: codeblock}

ibmcloud iam trusted-profile-template-version-commit DBAdministrator 1

  ## Asignación de una plantilla de perfil de confianza a cuentas secundarias mediante la CLI
  {: #assign-trusted-profile-template-cli cli}

  Asigne la plantilla de perfil de confianza a las cuentas secundarias de su empresa.

  Puede asignar una plantilla de IAM solo a cuentas secundarias y grupos de cuentas, no a la cuenta de empresa.
  {: note}

  Para crear una asignación para una plantilla de perfil de confianza, siga estos pasos:
  1. Enumere las plantillas de perfil de confianza en su cuenta de empresa y anote el nombre de la plantilla y el número de versión de la plantilla de perfil de confianza que desea asignar a las cuentas secundarias:

 ```bash {: codeblock}
 ibmcloud iam trusted-profile-templates
1. Asigne la plantilla a un `Account` o `AccountGroup` mediante el comando `account-trusted profile-assignment-create`.
ibmcloud iam trusted-profile-assignment-create DBAdministrator 1 AccountGroup 955fc2274567474f8da802d5c376504b
Si una asignación falla, utilice el método `trusted-profile-assignment-update` para volver a intentarlo.
{: tip}

## Crear una nueva versión mediante la CLI
{: #new-version-trusted-profile-template cli}

Si desea realizar cambios en una plantilla de perfil de confianza que está confirmada o asignada, cree una nueva versión.

1. Actualice su archivo JSON con la nueva definición de plantilla de perfil de confianza. Para obtener más información sobre los atributos que puede utilizar en su archivo JSON, consulte [la API de identidad IAM](/docs/apis/iam-identity-token-api#create-profile-template-version).
1. Utilice el método `trusted-profile-template-version-create` para crear una nueva versión. La siguiente solicitud de muestra crea una nueva versión de la plantilla `DBAdministrator`.
ibmcloud iam trusted-profile-template-version-create DBAdministrator --file /path/to/db_trusted-profile_template.json
## Actualización de una asignación mediante la CLI
{: #update-assignment-trusted-profile-cli cli}

Actualizar una asignación para migrar a una nueva versión o reintentar una asignación fallida.

La nueva versión de plantilla que asignas reemplaza a la versión antigua. Más información sobre [Asignación de una nueva versión](/docs/enterprise-management?topic=enterprise-management-working-with-versions#new-version).
{: note}

1. Enumere las asignaciones de perfiles de confianza en su cuenta empresarial y anote el ID de usuario ( `template_id` ) para la asignación que desea actualizar:
ibmcloud iam trusted-profile-assignments
1. Actualiza la asignación del perfil de confianza. Si vuelve a intentar una tarea, utilice el mismo número de versión. La siguiente solicitud de muestra migra la asignación `ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d` a la versión 2.
ibmcloud iam trusted-profile-assignment-update ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d 2
## Eliminar una asignación mediante la CLI
{: #remove-assignment-trusted-profile-cli cli}

Puede eliminar la asignación de una plantilla de una cuenta o grupo de cuentas a la que esté asignada la plantilla. Puede que desee hacerlo si la plantilla no funciona como debería. Cuando eliminas una asignación de plantilla de una cuenta, por defecto se restablece la versión anterior de la plantilla. Si la asignación que eliminas es para la primera o única versión de una plantilla, se eliminan los perfiles de confianza gestionados por la empresa en la cuenta secundaria.

Para eliminar una asignación, sigue estos pasos:

1. Enumere las asignaciones en la cuenta utilizando el método de asignación de tareas ( `account-trusted profile-assignments` ). Tome nota de la dirección de correo electrónico ( `ASSIGNMENT_ID` ) de la tarea que desea eliminar.
1. Elimine la asignación mediante el método `account-trusted profile-assigment-delete`. La siguiente solicitud de muestra elimina la asignación `AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b`.
ibmcloud iam account-trusted profile-assignment-delete AccountSettingsAssignment-63d65ed159ff463b8ec09ea77d22a05b
## Cómo eliminar una versión mediante la CLI
{: #delete-trusted-profile-template-version-cli cli}

Antes de poder eliminar una versión de plantilla de perfil de confianza, debe eliminar todas las asignaciones de esa versión de la plantilla. Para eliminar una versión específica, siga estos pasos:

1. Enumere las plantillas de perfil de confianza en su cuenta de empresa y anote el nombre de la plantilla y el número de versión de la versión que desea eliminar:
ibmcloud iam account-trusted profile-templates
1. Eliminar la versión:
ibmcloud iam account-trusted profile-template-delete AccountSettingsTemplateUpdated 2
1. Para eliminar todas las versiones, repita estos pasos. Asegúrese de eliminar primero las asignaciones de cada versión.

## Creación de una plantilla de perfil de confianza mediante el uso de la API
{: #create-trusted-profile-template-api api}

Considere la posibilidad de utilizar plantillas de perfiles de confianza cuando tenga muchas cuentas secundarias que requieran el mismo perfil de confianza. Por ejemplo, su organización podría tener normas internas o exigir el cumplimiento de la normativa del sector.

Para crear una plantilla de perfil de confianza mediante el uso de la API, siga estos pasos:

1. Configurar la definición de la plantilla de perfil de confianza. Para obtener más información sobre los atributos que puede utilizar, consulte [la API de identidad de IAM](/docs/apis/iam-identity-token-api#create-profile-template).

El siguiente ejemplo especifica el account_id de la cuenta de empresa, el name de la plantilla y la configuración de profile. Este perfil de confianza es para administradores de bases de datos. Se permite a un usuario específico aplicar la plantilla definida en identities. También se define rules, que concede acceso al perfil en función de los atributos de SAML.

   {
   "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
   "name": "dbadmintemplate",
   "profile": {
      "name": "Profile for DB Admins",
      "description": "allows users to admin db instances",
      "identities": [
            {
               "type": "user",
               "identifier": "IBMid-123456789",
               "accounts": [
                  "5bbe28be34524sdbdaa34d37d1f2294a"
               ]
            }
      ],
      "rules": [
            {
               "type": "Profile",
               "realm_name": "${IDP_REALM_NAME}",
               "expiration": 43200,
               "conditions": [
                  {
                        "claim": "group",
                        "operator": "EQUALS",
                        "value": "\"admins\""
                  }
               ]
            }
      ]
   },
   "policy_template_references": [
      {
            "id": "Policy Template-12345",
            "version": 1
      }
   ]
}
   ProfileClaimRuleConditions condition = new ProfileClaimRuleConditions.Builder()
      .claim("blueGroups")
      .operator("EQUALS")
      .value("\"cloud-docs-dev\"")
      .build();
   List<ProfileClaimRuleConditions> conditions = new ArrayList<>();
   conditions.add(condition);
   TrustedProfileTemplateClaimRule claimRule = new TrustedProfileTemplateClaimRule.Builder()
      .name("My Rule")
      .realmName(realmName)
      .type(claimRuleType)
      .expiration(43200)
      .conditions(conditions)
      .build();
   TemplateProfileComponentRequest profile = new TemplateProfileComponentRequest.Builder()
      .addRules(claimRule)
      .name(profileTemplateProfileName)
      .description("Trusted profile created from a template")
      .build();
   CreateProfileTemplateOptions createProfileTemplateOptions = new CreateProfileTemplateOptions.Builder()
      .name(profileTemplateName)
      .description("IAM enterprise trusted profile template example")
      .accountId(enterpriseAccountId)
      .profile(profile)
      .build();
   Response<TrustedProfileTemplateResponse> response = service.createProfileTemplate(createProfileTemplateOptions).execute();
   TrustedProfileTemplateResponse trustedProfileTemplateResult = response.getResult();
   // Save the id for use by other test methods.
   profileTemplateId = trustedProfileTemplateResult.getId();
   profileTemplateVersion = trustedProfileTemplateResult.getVersion().longValue();
   System.out.println(trustedProfileTemplateResult);
   ```
   ```javascript {: javascript codeblock}
   const condition = {
   claim: "blueGroups",
   operator: "EQUALS",
   value: "\"cloud-docs-dev\"",
   }
   const claimRule = {
      name: "My Rule",
      realm_name: realmName,
      type: 'Profile-SAML',
      expiration: 43200,
      conditions: [condition],
   }
   const profile = {
   rules: [claimRule],
   name: "Profile-From-Example-Template",
   description: "Trusted profile created from a template",
   }
   const templateParams = {
   name: "Example-Profile-Template",
   description: "IAM enterprise trusted profile template example",
   accountId: enterpriseAccountId,
   profile: profile,
   }
   try {
   const res = await iamIdentityService.createProfileTemplate(templateParams);
   profileTemplateEtag = res.headers.etag;
   const { result } = res;
   profileTemplateId = result.id;
   profileTemplateVersion = result.version;
   console.log(JSON.stringify(result, null, 2));
   } catch (err) {
   console.warn(err);
   }
   ```
   ```python {: python codeblock}
   profile_claim_rule_conditions = {}
   profile_claim_rule_conditions['claim'] = 'blueGroups'
   profile_claim_rule_conditions['operator'] = 'EQUALS'
   profile_claim_rule_conditions['value'] = '\"cloud-docs-dev\"'
   profile_claim_rule = {}
   profile_claim_rule['name'] = 'My Rule'
   profile_claim_rule['realm_name'] = 'https://sdk.test.realm/1234'
   profile_claim_rule['type'] = 'Profile-SAML'
   profile_claim_rule['expiration'] = 43200
   profile_claim_rule['conditions'] = [profile_claim_rule_conditions]
   profile = {}
   profile['name'] = 'Profile-From-Example-Template'
   profile['description'] = 'Trusted profile created from a template'
   profile['rules'] = [profile_claim_rule]
   create_response = iam_identity_service.create_profile_template(
   name='Example-Profile-Template',
   description='IAM enterprise trusted profile template example',
   account_id=enterprise_account_id,
   profile=profile,
   )
   profile_template = create_response.get_result()
   print('\ncreate_profile_template() response: ', json.dumps(profile_template, indent=2))
   global profile_template_id
   profile_template_id = profile_template['id']
   global profile_template_version
   profile_template_version = profile_template['version']
   ```
   ```go {: go codeblock}
   profileClaimRuleConditions := new(iamidentityv1.ProfileClaimRuleConditions)
   profileClaimRuleConditions.Claim = core.StringPtr("blueGroups")
   profileClaimRuleConditions.Operator = core.StringPtr("EQUALS")
   profileClaimRuleConditions.Value = core.StringPtr("\"cloud-docs-dev\"")
   profileTemplateClaimRule := new(iamidentityv1.TrustedProfileTemplateClaimRule)
   profileTemplateClaimRule.Name = core.StringPtr("My Rule")
   profileTemplateClaimRule.RealmName = &realmName
   profileTemplateClaimRule.Type = &claimRuleType
   profileTemplateClaimRule.Expiration = core.Int64Ptr(int64(43200))
   profileTemplateClaimRule.Conditions = []iamidentityv1.ProfileClaimRuleConditions{*profileClaimRuleConditions}
   profile := new(iamidentityv1.TemplateProfileComponentRequest)
   profile.Name = &profileTemplateProfileName
   profile.Description = core.StringPtr("Example Profile created from Profile Template")
   profile.Rules = []iamidentityv1.TrustedProfileTemplateClaimRule{*profileTemplateClaimRule}
   createOptions := &iamidentityv1.CreateProfileTemplateOptions{
   Name:        &profileTemplateName,
   Description: core.StringPtr("Example Profile Template"),
   AccountID:   &enterpriseAccountID,
   Profile:     profile,
   }
   createResponse, response, err := iamIdentityService.CreateProfileTemplate(createOptions)
   b, _ := json.MarshalIndent(createResponse, "", "  ")
   fmt.Println(string(b))
   // Grab the ID and Etag value from the response for use in the update operation
   profileTemplateId = *createResponse.ID
   profileTemplateVersion = *createResponse.Version
   profileTemplateEtag = response.GetHeaders().Get("Etag")
   ```
 Guarde el ID de ProfileTemplate y el valor entity_tag de la respuesta para utilizarlos en operaciones de actualización.
 { tip}

 ## Actualización de una plantilla de perfil de confianza mediante el uso de la API
 {: #update-trusted-profile-template-api api}

 Puede actualizar una plantilla de perfil de confianza en cualquier momento antes de confirmarla. Para obtener más información sobre los atributos que puede utilizar en su archivo JSON, consulte [la API de identidad IAM](/docs/apis/iam-identity-token-api#update-profile-template-version). Para actualizar una versión específica de una plantilla de perfil de confianza, siga estos pasos:

 1. Enumere las plantillas de perfil de confianza en su cuenta de empresa y anote el ID de `ProfileTemplate` y el ETag en la respuesta para la versión de plantilla que desea actualizar.

```bash {: curl codeblock}
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
1. Actualizar la definición de la plantilla de perfil de confianza.

```bash {: curl codeblock}

curl -X PUT 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{ "account_id": "5bbe28be34524sdbdaa34d37d1f2294a", "name": "db admin template", "profile": { "name": "Profile for DB Admins", "description": "allows users to admin db instances", "rules": [ { "type": "Profile", "realm_name": "${IDP_REALM_NAME}", "expiration": 43200, "conditions": [ { "claim": "name", "operator": "EQUALS", "value": ""My Name"" } ] } ] }, "policy_template_references": [ { "id": "Policy Template-12345", "version": 1 } ] }'

 ```java {: java codeblock}
 UpdateProfileTemplateVersionOptions updateOptions = new UpdateProfileTemplateVersionOptions.Builder()
    .accountId(enterpriseAccountId)
    .templateId(profileTemplateId)
    .version(Long.toString(profileTemplateVersion))
    .ifMatch(profileTemplateEtag)
    .name(profileTemplateName)
    .description("IAM enterprise trusted profile template example - updated")
    .build();
 Response<TrustedProfileTemplateResponse> updateResponse = service.updateProfileTemplateVersion(updateOptions).execute();
 TrustedProfileTemplateResponse updateResult = updateResponse.getResult();
 // Grab the Etag value from the response for use in the update operation.
 profileTemplateEtag = updateResponse.getHeaders().values("Etag").get(0);
 System.out.println(updateResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
version: profileTemplateVersion,
ifMatch: profileTemplateEtag,
name: "Example-Profile-Template",
description: "IAM enterprise trusted profile template example - updated",
}
try {
const res = await iamIdentityService.updateProfileTemplateVersion(params);
profileTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
{
"id": "ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9",
"version": 1,
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "db admin template",
"committed": false,
"profile": {
   "name": "Profile for DB Admins",
   "description": "allows users to admin db instances",
   "rules": [
      {
      "type": "Profile-SAML",
      "realm_name": "${IDP_REALM_NAME}",
      "expiration": 43200,
      "conditions": [
         {
            "claim": "name",
            "operator": "EQUALS",
            "value": "\"My Name\""
         }
      ]
      }
   ]
},
"policy_template_references": [
   {
      "id": "Policy Template-12345",
      "version": "1"
   }
],
"created_at": "2023-03-07T13:55:33:428+0000",
"created_by_id": "IBMid-12345678901",
"last_modified_at": "2023-03-07T13:55:33:428+0000",
"last_modified_by_id": "IBMid-12345678901",
"entity_tag": "1-2da85a8f1172fc3527378318d3182778",
"crn": "crn:v1:staging:public:iam-identity::a/5bbe28be34524sdbdaa34d37d1f2294a::template:ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9"
}
{
"id": "ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9",
"version": 1,
"account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
"name": "db admin template",
"committed": false,
"profile": {
   "name": "Profile for DB Admins",
   "description": "allows users to admin db instances",
   "rules": [
      {
      "type": "Profile-SAML",
      "realm_name": "${IDP_REALM_NAME}",
      "expiration": 43200,
      "conditions": [
         {
            "claim": "name",
            "operator": "EQUALS",
            "value": "\"My Name\""
         }
      ]
      }
   ]
},
"policy_template_references": [
   {
      "id": "Policy Template-12345",
      "version": "1"
   }
],
"created_at": "2023-03-07T13:55:33:428+0000",
"created_by_id": "IBMid-12345678901",
"last_modified_at": "2023-03-07T13:55:33:428+0000",
"last_modified_by_id": "IBMid-12345678901",
"entity_tag": "1-2da85a8f1172fc3527378318d3182778",
"crn": "crn:v1:staging:public:iam-identity::a/5bbe28be34524sdbdaa34d37d1f2294a::template:ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9"
}

Cuando actualizas el nombre de la plantilla, se actualiza el nombre de todas las versiones.

Comprometer una plantilla de perfil de confianza mediante el uso de la API

Revise la plantilla de perfil de confianza y confírmela para que no pueda realizar más cambios en la versión. Comprometer una versión es un paso necesario antes de poder asignarla a cuentas secundarias. De esta manera, el administrador de asignación de plantillas puede estar seguro de que asigna la versión solo cuando usted confirma que está lista.

  1. Obtenga la versión de una plantilla de perfil de confianza que desee revisar y confirmar.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
GetProfileTemplateVersionOptions getProfileTemplateOptions = new GetProfileTemplateVersionOptions.Builder()
   .templateId(profileTemplateId)
   .version(Long.toString(profileTemplateVersion))
   .build();
Response<TrustedProfileTemplateResponse> response = service.getProfileTemplateVersion(getProfileTemplateOptions).execute();
TrustedProfileTemplateResponse profileTemplateResult = response.getResult();
profileTemplateEtag = response.getHeaders().values("Etag").get(0);
System.out.println(profileTemplateResult);
const params = {
templateId: profileTemplateId,
version: profileTemplateVersion,
}
try {
const res = await iamIdentityService.getProfileTemplateVersion(params);
profileTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
get_response = iam_identity_service.get_profile_template_version(
template_id=profile_template_id, version=str(profile_template_version)
)
profile_template = get_response.get_result()
print('\nget_profile_template response: ', json.dumps(profile_template, indent=2))
global profile_template_etag
profile_template_etag = get_response.get_headers()['Etag']
profile_template_etag is not None
getOptions := &iamidentityv1.GetProfileTemplateVersionOptions{
TemplateID: &profileTemplateId,
Version:    core.StringPtr(strconv.FormatInt(profileTemplateVersion, 10)),
}
getResponse, response, err := iamIdentityService.GetProfileTemplateVersion(getOptions)
b, _ := json.MarshalIndent(getResponse, "", "  ")
fmt.Println(string(b))
profileTemplateEtag = response.GetHeaders().Get("Etag")
  1. Revise la respuesta para confirmar que está listo para confirmar.
  2. Comprometer la versión de la plantilla de perfil de confianza.
curl -X POST 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/{version}/commit' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
CommitProfileTemplateOptions commitOptions = new CommitProfileTemplateOptions.Builder()
   .templateId(profileTemplateId)
   .version(Long.toString(profileTemplateVersion))
   .build();
Response<Void> commitResponse = service.commitProfileTemplate(commitOptions).execute();
const commitParams = {
templateId: profileTemplateId,
version: profileTemplateVersion,
}
try {
const res = await iamIdentityService.commitProfileTemplate(commitParams);
} catch (err) {
console.warn(err);
}
commit_response = iam_identity_service.commit_profile_template(
template_id=profile_template_id, version=str(profile_template_version)
)
commitOptions := &iamidentityv1.CommitProfileTemplateOptions{
TemplateID: &profileTemplateId,
Version:    core.StringPtr(strconv.FormatInt(profileTemplateVersion, 10)),
}
response, err := iamIdentityService.CommitProfileTemplate(commitOptions)

Asignación de una plantilla de perfil de confianza a cuentas secundarias mediante el uso de la API

Asigne la plantilla de perfil de confianza a las cuentas secundarias de su empresa.

Puede asignar una plantilla de IAM solo a cuentas secundarias y grupos de cuentas, no a la cuenta de empresa.

Para crear una asignación para una plantilla de perfil de confianza, siga estos pasos:

  1. Enumere las plantillas de perfil de confianza en su cuenta de empresa y anote el ID de ProfileTemplate y la versión en la respuesta para la versión de plantilla que desea asignar.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
ibmcloud iam trusted-profile-templates
  1. Asigne la plantilla a un Account o AccountGroup.
curl -X POST 'https://iam.cloud.ibm.com/v1/profile_assignments' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
   "template_id": "ProfileTemplate-cac1b203-5956-4981-bdec-0a4af4feab4d",
   "template_version": 1,
   "target_type": "Account",
   "target": "5bbe28be34524e88a34d37d1f2294a8a"
}'
CreateTrustedProfileAssignmentOptions assignOptions = new CreateTrustedProfileAssignmentOptions.Builder()
   .templateId(profileTemplateId)
   .templateVersion(profileTemplateVersion)
   .targetType("Account")
   .target(enterpriseSubAccountId)
   .build();
Response<TemplateAssignmentResponse> assignResponse = service.createTrustedProfileAssignment(assignOptions).execute();
TemplateAssignmentResponse assignmentResponseResult = assignResponse.getResult();
// Save the id for use by other test methods.
profileTemplateAssignmentId = assignmentResponseResult.getId();
// Grab the Etag value from the response for use in the update operation.
profileTemplateAssignmentEtag = assignResponse.getHeaders().values("Etag").get(0);
System.out.println(assignmentResponseResult);
const assignParams = {
templateId: profileTemplateId,
templateVersion: profileTemplateVersion,
targetType: "Account",
target: enterpriseSubAccountId,
}
try {
const assRes = await iamIdentityService.createTrustedProfileAssignment(assignParams);
const { result } = assRes;
profileTemplateAssignmentId = result.id;
profileTemplateAssignmentEtag= assRes.headers.etag;
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.warn(err);
}
assign_response = iam_identity_service.create_trusted_profile_assignment(
template_id=profile_template_id,
template_version=profile_template_version,
target_type='Account',
target=enterprise_subaccount_id,
)
assignment = assign_response.get_result()
print('\ncreate_trusted_profile_assignment() response: ', json.dumps(assignment, indent=2))
global profile_template_assignment_id
profile_template_assignment_id = assignment['id']
global profile_template_assignment_etag
profile_template_assignment_etag = assign_response.get_headers()['Etag']
assignOptions := &iamidentityv1.CreateTrustedProfileAssignmentOptions{
TemplateID:      &profileTemplateId,
TemplateVersion: &profileTemplateVersion,
TargetType:      core.StringPtr("Account"),
Target:          &enterpriseSubAccountID,
}
assignResponse, response, err := iamIdentityService.CreateTrustedProfileAssignment(assignOptions)
b, _ := json.MarshalIndent(assignResponse, "", "  ")
fmt.Println(string(b))
// Grab the Etag and id for use by other test methods.
profileTemplateAssignmentEtag = response.GetHeaders().Get("Etag")
profileTemplateAssignmentId = *assignResponse.ID

Si una asignación falla, utilice la operación Actualizar asignación para volver a intentarlo.

Creación de una nueva versión mediante la API

Si desea realizar cambios en una plantilla de perfil de confianza que está confirmada o asignada, cree una nueva versión.

curl -X POST 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
   "account_id": "5bbe28be34524sdbdaa34d37d1f2294a",
   "name": "db admin template",
   "profile": {
      "name": "Profile for DB Admins",
      "description": "allows users to admin db instances",
      "rules": [
            {
               "type": "Profile",
               "realm_name": "${IDP_REALM_NAME}",
               "expiration": 43200,
               "conditions": [
                  {
                        "claim": "name",
                        "operator": "EQUALS",
                        "value": "\"My Name\""
                  }
               ]
            }
      ]
   },
   "policy_template_references": [
      {
            "id": "Policy Template-12345",
            "version": 1
      }
   ]
}'
ProfileClaimRuleConditions condition = new ProfileClaimRuleConditions.Builder()
   .claim("blueGroups")
   .operator("EQUALS")
   .value("\"cloud-docs-dev\"")
   .build();
List<ProfileClaimRuleConditions> conditions = new ArrayList<>();
conditions.add(condition);
TrustedProfileTemplateClaimRule claimRule = new TrustedProfileTemplateClaimRule.Builder()
   .name("My Rule")
   .realmName(realmName)
   .type(claimRuleType)
   .expiration(43200)
   .conditions(conditions)
   .build();
List<String> accounts = new ArrayList<String>();
accounts.add(enterpriseAccountId);
ProfileIdentityRequest profileIdentity = new ProfileIdentityRequest.Builder()
   .identifier(iamId)
   .accounts(accounts)
   .type("user")
   .description("Identity description")
   .build();
List<ProfileIdentityRequest> identities = new ArrayList<ProfileIdentityRequest>();
identities.add(profileIdentity);
TemplateProfileComponentRequest profile = new TemplateProfileComponentRequest.Builder()
   .addRules(claimRule)
   .name(profileTemplateProfileName)
   .description("Trusted profile created from a template - new version")
   .identities(identities)
   .build();
CreateProfileTemplateVersionOptions createOptions = new CreateProfileTemplateVersionOptions.Builder()
   .accountId(enterpriseAccountId)
   .templateId(profileTemplateId)
   .name(profileTemplateName)
   .description("IAM enterprise trusted profile template example - new version")
   .profile(profile)
   .build();
Response<TrustedProfileTemplateResponse> createResponse = service.createProfileTemplateVersion(createOptions).execute();
TrustedProfileTemplateResponse createResult = createResponse.getResult();
// Save the version for use by other test methods.
profileTemplateVersion = createResult.getVersion().longValue();
System.out.println(createResult);
const condition = {
   claim: "blueGroups",
   operator: "EQUALS",
   value: "\"cloud-docs-dev\"",
}
const claimRule = {
   name: "My Rule",
   realm_name: realmName,
   type: 'Profile-SAML',
   expiration: 43200,
   conditions: [condition],
}
const identity = {
   identifier: iamId,
   accounts: [enterpriseAccountId],
   type: "user",
   description: "Identity description",
}
const profile = {
   rules: [claimRule],
   name: "Profile-From-Example-Template",
   description: "Trusted profile created from a template - new version",
   identities: [identity],
}
const templateParams = {
   templateId: profileTemplateId,
   name: "Example-Profile-Template",
   description: "IAM enterprise trusted profile template example - new version",
   accountId: enterpriseAccountId,
   profile: profile,
}
try {
   const res = await iamIdentityService.createProfileTemplateVersion(templateParams);
   const { result } = res;
   profileTemplateVersion = result.version;
   console.log(JSON.stringify(result, null, 2));
} catch (err) {
   console.warn(err);
}
profile_claim_rule_conditions = {}
profile_claim_rule_conditions['claim'] = 'blueGroups'
profile_claim_rule_conditions['operator'] = 'EQUALS'
profile_claim_rule_conditions['value'] = '\"cloud-docs-dev\"'
profile_claim_rule = {}
profile_claim_rule['name'] = 'My Rule'
profile_claim_rule['realm_name'] = 'https://sdk.test.realm/1234'
profile_claim_rule['type'] = 'Profile-SAML'
profile_claim_rule['expiration'] = 43200
profile_claim_rule['conditions'] = [profile_claim_rule_conditions]
profile_identity = {}
profile_identity['identifier'] = iam_id
profile_identity['accounts'] = [enterprise_account_id]
profile_identity['type'] = 'user'
profile_identity['description'] = 'Identity description'
profile = {}
profile['name'] = 'Profile-From-Example-Template'
profile['description'] = 'Trusted profile created from a template - new version'
profile['rules'] = [profile_claim_rule]
profile['identities'] = [profile_identity]
create_response = iam_identity_service.create_profile_template_version(
template_id=profile_template_id,
name='Example-Profile-Template',
description='IAM enterprise trusted profile template example - new version',
account_id=enterprise_account_id,
profile=profile,
)
profile_template = create_response.get_result()
print('\ncreate_profile_template_version() response: ', json.dumps(profile_template, indent=2))
global profile_template_version
profile_template_version = profile_template['version']
profileClaimRuleConditions := new(iamidentityv1.ProfileClaimRuleConditions)
profileClaimRuleConditions.Claim = core.StringPtr("blueGroups")
profileClaimRuleConditions.Operator = core.StringPtr("EQUALS")
profileClaimRuleConditions.Value = core.StringPtr("\"cloud-docs-dev\"")
profileTemplateClaimRule := new(iamidentityv1.TrustedProfileTemplateClaimRule)
profileTemplateClaimRule.Name = core.StringPtr("My Rule")
profileTemplateClaimRule.RealmName = &realmName
profileTemplateClaimRule.Type = &claimRuleType
profileTemplateClaimRule.Expiration = core.Int64Ptr(int64(43200))
profileTemplateClaimRule.Conditions = []iamidentityv1.ProfileClaimRuleConditions{*profileClaimRuleConditions}
profile := new(iamidentityv1.TemplateProfileComponentRequest)
profile.Name = &profileTemplateProfileName
profile.Description = core.StringPtr("Example Profile created from Profile Template - new version")
profile.Rules = []iamidentityv1.TrustedProfileTemplateClaimRule{*profileTemplateClaimRule}
createOptions := &iamidentityv1.CreateProfileTemplateVersionOptions{
Name:        &profileTemplateName,
Description: core.StringPtr("Example Profile Template - new version"),
AccountID:   &enterpriseAccountID,
TemplateID:  &profileTemplateId,
Profile:     profile,
}
createResponse, response, err := iamIdentityService.CreateProfileTemplateVersion(createOptions)
b, _ := json.MarshalIndent(createResponse, "", "  ")
fmt.Println(string(b))
// save the new version to be used in subsequent calls
profileTemplateVersion = *createResponse.Version

Actualización de una tarea mediante la API

Actualizar una asignación para migrar a una nueva versión o reintentar una asignación fallida.

La nueva versión de plantilla que asignas reemplaza a la versión antigua. Más información sobre Asignación de una nueva versión.

  1. Enumere las asignaciones de perfiles de confianza en su cuenta de empresa y anote el ID de TemplateAssignment y la versión de la asignación que desea actualizar:
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListTrustedProfileAssignmentsOptions listOptions = new ListTrustedProfileAssignmentsOptions.Builder()
   .accountId(enterpriseAccountId)
   .templateId(profileTemplateId)
   .build();
Response<TemplateAssignmentListResponse> listResponse = service.listTrustedProfileAssignments(listOptions).execute();
TemplateAssignmentListResponse listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.listTrustedProfileAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_trusted_profile_assignments(
account_id=enterprise_account_id, template_id=profile_template_id
)
assignment_list = list_response.get_result()
print('\nlist_trusted_profile_assignments() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListTrustedProfileAssignmentsOptions{
AccountID:  &enterpriseAccountID,
TemplateID: &profileTemplateId,
}
listResponse, response, err := iamIdentityService.ListTrustedProfileAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. Actualiza la asignación del perfil de confianza. Si vuelve a intentar una tarea, utilice el mismo número de versión. La siguiente solicitud de muestra migra la asignación a la versión 2.
curl -X PATCH 'https://iam.cloud.ibm.com/v1/profile_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN' -d '{
   "template_version": 2
}'
UpdateTrustedProfileAssignmentOptions updateOptions = new UpdateTrustedProfileAssignmentOptions.Builder()
   .assignmentId(profileTemplateAssignmentId)
   .templateVersion(profileTemplateVersion)
   .ifMatch(profileTemplateAssignmentEtag)
   .build();
Response<TemplateAssignmentResponse> updateResponse = service.updateTrustedProfileAssignment(updateOptions).execute();
TemplateAssignmentResponse updateResult = updateResponse.getResult();
// Grab the Etag value from the response for use in the update operation.
profileTemplateAssignmentEtag = updateResponse.getHeaders().values("Etag").get(0);
System.out.println(updateResult);
const assignParams = {
assignmentId: profileTemplateAssignmentId,
templateVersion: profileTemplateVersion,
ifMatch: profileTemplateAssignmentEtag,
}
try {
const assRes = await iamIdentityService.updateTrustedProfileAssignment(assignParams);
console.log(JSON.stringify(assRes.result, null, 2));
} catch (err) {
console.warn(err);
}
assign_response = iam_identity_service.update_trusted_profile_assignment(
assignment_id=profile_template_assignment_id,
template_version=profile_template_version,
if_match=profile_template_assignment_etag,
)
assignment = assign_response.get_result()
print('\nupdate_profile_template_assignment response: ', json.dumps(assignment, indent=2))
profile_template_assignment_etag = assign_response.get_headers()['Etag']
updateOptions := &iamidentityv1.UpdateTrustedProfileAssignmentOptions{
AssignmentID:    &profileTemplateAssignmentId,
TemplateVersion: &profileTemplateVersion,
IfMatch:         &profileTemplateAssignmentEtag,
}
updateResponse, response, err := iamIdentityService.UpdateTrustedProfileAssignment(updateOptions)
b, _ := json.MarshalIndent(updateResponse, "", "  ")
fmt.Println(string(b))
// Grab the Etag and id for use by other test methods.
profileTemplateAssignmentEtag = response.GetHeaders().Get("Etag")

Eliminar una asignación mediante la API

Puede eliminar la asignación de una plantilla de una cuenta o grupo de cuentas a la que esté asignada la plantilla. Puede que desee hacerlo si la plantilla no funciona como debería o ya no es necesaria. Cuando elimina una asignación de plantilla de una cuenta, por defecto se restablece la versión anterior de la plantilla, si existe. Si la asignación que eliminas es para la primera o única versión de una plantilla, se eliminará el perfil de confianza gestionado por la empresa en las cuentas secundarias.

Para eliminar una asignación, sigue estos pasos:

  1. Enumere las asignaciones de perfiles de confianza en su cuenta de empresa y anote el ID de e TemplateAssignment o de la asignación que desea eliminar.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_assignments?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListTrustedProfileAssignmentsOptions listOptions = new ListTrustedProfileAssignmentsOptions.Builder()
   .accountId(enterpriseAccountId)
   .templateId(profileTemplateId)
   .build();
Response<TemplateAssignmentListResponse> listResponse = service.listTrustedProfileAssignments(listOptions).execute();
TemplateAssignmentListResponse listResult = listResponse.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.listTrustedProfileAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_trusted_profile_assignments(
account_id=enterprise_account_id, template_id=profile_template_id
)
assignment_list = list_response.get_result()
print('\nlist_trusted_profile_assignments() response: ', json.dumps(assignment_list, indent=2))
listOptions := &iamidentityv1.ListTrustedProfileAssignmentsOptions{
AccountID:  &enterpriseAccountID,
TemplateID: &profileTemplateId,
}
listResponse, response, err := iamIdentityService.ListTrustedProfileAssignments(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. Elimine la asignación.

Al eliminar una asignación, es posible que se active una asignación anterior. Para obtener más información, consulte Trabajar con versiones de plantilla.

curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_assignments/<assignment_id>' -H 'Authorization: Bearer $TOKEN' }'
DeleteTrustedProfileAssignmentOptions deleteOptions = new DeleteTrustedProfileAssignmentOptions.Builder()
   .assignmentId(profileTemplateAssignmentId)
   .build();
Response<ExceptionResponse> deleteResponse = service.deleteTrustedProfileAssignment(deleteOptions).execute();
const params = {
assignmentId: profileTemplateAssignmentId,
}
try {
const res = await iamIdentityService.deleteTrustedProfileAssignment(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_trusted_profile_assignment(
assignment_id=profile_template_assignment_id
)
deleteOptions := &iamidentityv1.DeleteTrustedProfileAssignmentOptions{
AssignmentID: &profileTemplateAssignmentId,
}
excResponse, response, err := iamIdentityService.DeleteTrustedProfileAssignment(deleteOptions)

Eliminar una versión mediante la API

Antes de poder eliminar una versión de plantilla de perfil de confianza, debe eliminar todas las asignaciones de esa versión de la plantilla. Para eliminar una versión específica, siga estos pasos:

  1. Enumere las plantillas de perfil de confianza en su cuenta de empresa y anote el ID de ProfileTemplate y la versión en la respuesta para la versión de plantilla que desea eliminar.
curl -X GET 'https://iam.cloud.ibm.com/v1/profile_templates?account_id=5bbe28be34524sdbdaa34d37d1f2294a' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
ListProfileTemplatesOptions listOptions = new ListProfileTemplatesOptions.Builder()
   .accountId(enterpriseAccountId)
   .build();
Response<TrustedProfileTemplateList> response = service.listProfileTemplates(listOptions).execute();
TrustedProfileTemplateList listResult = response.getResult();
System.out.println(listResult);
const params = {
accountId: enterpriseAccountId,
}
try {
const res = await iamIdentityService.listProfileTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
list_response = iam_identity_service.list_profile_templates(account_id=enterprise_account_id)
profile_template_list = list_response.get_result()
print('\nlist_profile_templates response: ', json.dumps(profile_template_list, indent=2))
listOptions := &iamidentityv1.ListProfileTemplatesOptions{
AccountID: &enterpriseAccountID,
}
listResponse, response, err := iamIdentityService.ListProfileTemplates(listOptions)
b, _ := json.MarshalIndent(listResponse, "", "  ")
fmt.Println(string(b))
  1. Eliminar la versión:
curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_templates/{template_id}/versions/{version}' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
DeleteProfileTemplateVersionOptions deleteOptions = new DeleteProfileTemplateVersionOptions.Builder()
   .templateId(profileTemplateId)
   .version("1")
   .build();
Response<Void> deleteResponse = service.deleteProfileTemplateVersion(deleteOptions).execute();
const params = {
templateId: profileTemplateId,
version: 1,
}
try {
const res = await iamIdentityService.deleteProfileTemplateVersion(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_profile_template_version(
template_id=profile_template_id, version='1'
)
deleteOptions := &iamidentityv1.DeleteProfileTemplateVersionOptions{
TemplateID: &profileTemplateId,
Version:    core.StringPtr("1"),
}
response, err := iamIdentityService.DeleteProfileTemplateVersion(deleteOptions)

Eliminar todas las versiones mediante el uso de la API

Asegúrese de eliminar primero las asignaciones de cada versión.

curl -X DELETE 'https://iam.cloud.ibm.com/v1/profile_templates/ProfileTemplate-767fc1f6-c77c-4196-b3d6-a009a5a536e9' -H 'Content-Type: application/json' -H 'Authorization: Bearer $TOKEN'
DeleteAllVersionsOfProfileTemplateOptions deleteTeplateOptions = new DeleteAllVersionsOfProfileTemplateOptions.Builder()
   .templateId(profileTemplateId)
   .build();
Response<Void> deleteResponse = service.deleteAllVersionsOfProfileTemplate(deleteTeplateOptions).execute();
const params = {
templateId: profileTemplateId,
}
try {
const res = await iamIdentityService.deleteAllVersionsOfProfileTemplate(params);
} catch (err) {
console.warn(err);
}
delete_response = iam_identity_service.delete_all_versions_of_profile_template(
template_id=profile_template_id
)
deleteOptions := &iamidentityv1.DeleteAllVersionsOfProfileTemplateOptions{
TemplateID: &profileTemplateId,
}
response, err := iamIdentityService.DeleteAllVersionsOfProfileTemplate(deleteOptions)