Configuración del motor de credenciales de IAM

Puede configurar las credenciales de IAM para la instancia de servicio de IBM Cloud® Secrets Manager configurando el motor de credenciales de IAM.

En Secrets Manager, el motor de credenciales de IAM sirve como programa de fondo para el tipo de secreto iam_credentials. Para poder crear credenciales de IAM, debe configurar el motor de credenciales de IAM para la instancia de servicio. Puede habilitar su instancia creando una autorización de servicio IAM, o introduciendo una clave API que esté asociada a un ID de servicio en su cuenta IBM Cloud.

Cuando se utiliza una clave de API para la configuración del motor, el token de acceso que se genera dura 60 minutos y seguirá funcionando aunque la clave de API se elimine de IAM. Esto se puede modificar cambiando la caducidad de la señal en los valores de IAM. Más información. Tenga en cuenta que si la entidad que está relacionada con la clave de API se suprime, la señal se invalida inmediatamente.

Cuando se utiliza la autorización de servicio IAM para la configuración del motor, se pueden crear y gestionar secretos de credenciales IAM en la misma cuenta IBM Cloud que la instancia Secrets Manager, así como desde otras cuentas. La configuración de la clave API sólo funciona con la cuenta a la que pertenece la instancia Secrets Manager.

Antes de empezar

Para configurar el motor de credenciales IAM, asegúrate de que tienes asignada la Director rol de servicio en la instancia Secrets Manager.

Si configura el motor de credenciales de IAM con una clave de API, necesita una clave de API de ID de servicio con el siguiente acceso:

Si configura el motor de credenciales de IAM con autorización de servicio de IAM, Secrets Manager añade las dos políticas de autorización siguientes en su nombre.

Si la cuenta en la que desea generar las credenciales de IAM permite el acceso desde direcciones IP específicas, también debe actualizar la configuración de la dirección IP en la cuenta para permitir las solicitudes entrantes de Secrets Manager. Para obtener más información, consulte Gestión del acceso con restricciones basadas en contexto.

Configuración del motor de credenciales de IAM en la interfaz de usuario

Uso de la autorización de servicios IAM

Complete los siguientes pasos para configurar el motor de credenciales de IAM utilizando la autorización de servicios de IAM.

Para gestionar las credenciales de IAM desde la misma cuenta de IBM Cloud que su instancia de Secrets Manager:

  1. En la página Motores secretos, pulse la pestaña Credenciales de IAM.
  2. Pulse Autorizar.
  3. Pulse Configurar.

Para gestionar las credenciales de IAM desde otra cuenta de IBM Cloud, cree manualmente las autorizaciones de servicio de IAM.

Para la política de autorización IAM Identity Service service:

  1. En la cuenta en la que desea gestionar las credenciales IAM, vaya a Gestionar > Acceso (IAM).
  2. Seleccione Autorizaciones en el menú del panel izquierdo.
  3. Pulse Crear.
  4. En Origen, seleccione Cuenta específica e indique el ID de cuenta al que pertenece la instancia Secrets Manager.
    • Servicio: Secrets Manager.
    • Recursos: Recursos específicos > Instancia de servicio e indique el ID de instancia de servicio de su instancia Secrets Manager.
  5. En Objetivo seleccione
    • Servicio: IAM Identity Service
    • Recursos: Todos
    • Funciones: Operador

Para la política de autorización Servicio de grupos de acceso IAM:

  1. En la cuenta en la que desea gestionar las credenciales IAM, vaya a Gestionar > Acceso (IAM).
  2. Seleccione Autorizaciones en el menú del panel izquierdo.
  3. Pulse Crear.
  4. En Origen, seleccione Cuenta específica e indique el ID de cuenta al que pertenece la instancia Secrets Manager.
    • Servicio: Secrets Manager.
    • Recursos: Recursos específicos > Instancia de servicio e indique el ID de instancia de servicio de su instancia Secrets Manager.
  5. En Objetivo seleccione
    • Servicio: Servicio de Grupos de Acceso IAM
    • Recursos: Todos
    • Roles: Grupos Miembro del Servicio Administrar

Mediante clave de API

Complete los siguientes pasos para configurar el motor de credenciales de IAM utilizando una clave de API de ID de servicio.

  1. En la página Motores secretos, pulse la pestaña Credenciales de IAM.
  2. Haga clic en Configurar motor de credenciales IAM con clave API.
  3. Especifique una clave de API que tenga acceso para crear y gestionar otras claves de API en su cuenta.
  4. Pulse Configurar.

Configuración del motor de credenciales de IAM desde la CLI

Uso de la autorización de servicios IAM

Complete los siguientes pasos para configurar el motor de credenciales de IAM mediante una autorización de servicio de IAM.

Para gestionar las credenciales de IAM desde la misma cuenta de IBM Cloud que su instancia de Secrets Manager, ejecute los siguientes comandos para añadir las políticas de autorización de servicios de IAM necesarias:

ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID
  • Sustituya SOURCE_SERVICE_INSTANCE_GUID por el Secrets Manager ID de servicio de instancia. Si no se proporciona, la autorización se aplica a todas las instancias de Secrets Manager

Para administrar las credenciales de IAM desde otra cuenta IBM Cloud: incluya también el parámetro ACCOUNT_GUID.

  1. Inicie sesión en la cuenta IBM Cloud con los ID de servicio que desea gestionar.
  2. Ejecute los siguientes comandos para añadir las políticas de autorización de servicio IAM necesarias:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID --source-service-account ACCOUNT_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID --source-service-instance-id ACCOUNT_GUID
  • Sustituya SOURCE_SERVICE_INSTANCE_GUID por el Secrets Manager ID de servicio de instancia. Si no se proporciona, la autorización se aplica a todas las instancias de Secrets Manager
  • Sustituya ACCOUNT_GUID por el ID de la cuenta IBM Cloud en la que desea crear los secretos de credenciales de IAM.

Mediante clave de API

Complete los siguientes pasos para configurar el motor de credenciales de IAM mediante la clave de API de un ID de servicio.

  1. En una ventana de terminal, inicie la sesión en IBM Cloud a través de la CLI de IBM Cloud.

    ibmcloud login
    
  2. Seleccione la cuenta, la región y el grupo de recursos donde se encuentra la instancia de servicio de Secrets Manager.

  3. Cree un ID de servicio y establézcalo como variable de entorno.

    export SERVICE_ID=`ibmcloud iam service-id-create <service_ID_name> --description "<description>" --output json | jq -r ".id"`; echo $SERVICE_ID
    
  4. Gestione el acceso para el ID de servicio.

    Asigne los permisos de ID de servicio para crear y gestionar otros ID de servicio.

    ibmcloud iam service-policy-create $SERVICE_ID --roles Operator --service-name "iam-identity"
    

    Asigne los permisos de ID de servicio para ver y actualizar los grupos de acceso en su cuenta.

    ibmcloud iam access-group-policy-create $SERVICE_ID --roles Editor --service-name "iam-groups"
    

    Añada el ID de servicio a un grupo de acceso en la cuenta.

    ibmcloud iam access-group-service-id-add <access_group_name> $SERVICE_ID
    

    Cree una clave de API de IBM Cloud para el ID de servicio.

    export IBM_CLOUD_API_KEY=`ibmcloud iam service-api-key-create <API_key_name> $SERVICE_ID --description "<description>" --output json | jq -r ".apikey"`
    
  5. Utilice la clave API para configurar el motor de credenciales IAM para su instancia.

    Para configurar un motor de secretos desde la CLI de IBM Cloud, ejecute el comando ibmcloud secrets-manager configuration-create comando.

    ibmcloud secrets-manager configuration-create --configuration-prototype='{"config_type": "iam_credentials_configuration","name": "iam-configuration","api_key": "'$IBM_CLOUD_API_KEY'"}'
    

    ¿Utiliza un indicador de mandatos de Windows™ (cmd.exe) o PowerShell? Si detecta errores con el contenido de JSON que pasa en la línea de mandatos, es posible que tenga que ajustar las series a los requisitos de uso de comillas específicos del sistema operativo. Para obtener más información, consulte Utilización de comillas con series en la CLI de IBM Cloud.

Configuración del motor de credenciales IAM con la API

Para obtener instrucciones paso a paso para crear una clave de API de IBM Cloud con el nivel de acceso correcto, cambie a los pasos de IU o CLI.

Uso de la autorización de servicios IAM

El siguiente ejemplo muestra una consulta que puede utilizar para configurar el motor de credenciales de IAM para su instancia cuando utilice la autorización de servicios de IAM. Más información en IBM Cloud IAM's API Docs.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
  "type": "authorization",
  "subjects": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$SOURCE_ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "secrets-manager"
        },
        {
          "name": "serviceInstance",
          "value": "$INSTANCE_GUID"
        }
      ]
    }
  ],
  "roles":[
        {
          "role_id": "crn:v1:bluemix:public:iam-identity::::serviceRole:ServiceIdCreator"
        },
        {
          "role_id": "crn:v1:bluemix:public:iam::::role:Operator"
        }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$TARGET_ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "iam-identity"
        }
      ]
    }
  ]
}'

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
  "type": "authorization",
  "subjects": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$SOURCE_ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "secrets-manager"
        },
        {
          "name": "serviceInstance",
          "value": "$INSTANCE_GUID"
        }
      ]
    }
  ],
  "roles":[
        {
          "role_id": "crn:v1:bluemix:public:iam-groups::::serviceRole:MemberManage"
        }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name":"$TARGET_ACCOUNT_ID",
          "value": "791f5fb10986423e97aa8512f18b7e65"
        },
        {
          "name": "serviceName",
          "value": "iam-groups"
        }
      ]
    }
  ]
}'

El atributo serviceInstance es opcional. Si se omite, la autorización se aplica a todas las instancias de Secrets Manager. En SOURCE_ACCOOUNT_ID y TARGET_ACCOUNT_ID son necesarios tanto si se crea la autorización para la cuenta corriente como para una cuenta específica.

Mediante clave de API

El siguiente ejemplo muestra una consulta que puede utilizar para configurar el motor de credenciales de IAM para su instancia utilizando una clave de API. Cuando llame a la API, sustituya las variables de clave de API y la señal de IAM por los valores que son específicos de la instancia de Secrets Manager.

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
    "api_key": "{iam_apikey}", "config_type": "iam_credentials_configuration",
    "name": "iam-configuration"
    }' \
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

Una respuesta correcta devuelve el valor de ID del secreto, junto con otros metadatos. Para obtener más información sobre los parámetros de solicitud obligatorios y opcionales, consulte Crear un secreto.

Configuración del motor de credenciales de IAM con Terraform

Uso de la autorización de servicios IAM

El siguiente ejemplo muestra una consulta que puede utilizar para configurar el motor de credenciales de IAM para su instancia Secrets Manager cuando utiliza una autorización de servicio de IAM.

    resource "ibm_iam_authorization_policy" "sm_to_iam_identity" {
        source_service_name = "secrets-manager"
        source_service_account = local.source_account_id
        source_resource_instance_id = local.instance_id
        target_service_name = "iam-identity"
        roles = ["Service ID creator", "Operator"]
    }

    resource "ibm_iam_authorization_policy" "sm_to_iam_groups" {
        source_service_name = "secrets-manager"
        source_service_account = local.source_account_id
        source_resource_instance_id = local.instance_id
        target_service_name = "iam-groups"
        roles = ["Groups Service Member Manage"]
    }

El atributo source_resource_instance_id es opcional. Si se omite, la autorización se aplica a todas las instancias de Secrets Manager. El atributo source_service_account es opcional. Puede omitirse si la cuenta de origen es la misma que la cuenta corriente.

Mediante clave de API

Para obtener instrucciones paso a paso para crear una clave de API de IBM Cloud con el nivel de acceso correcto, cambie a los pasos de IU o CLI.

El siguiente ejemplo muestra una configuración que puede utilizar para configurar el motor de credenciales de IAM utilizando la clave de API de un ID de servicio.

    resource "ibm_sm_iam_credentials_configuration" "iam_credentials_configuration" {
        instance_id = local.instance_id
        region = local.region
        name = "iam_credentials_config"
        api_key = var.ibmcloud_api_key
    }

Configure el motor de credenciales de IAM mediante programación con la página Secrets Manager Motor IAM. Consulte los ejemplos de configuración en Terraform IBM Modules.

Recuperación del valor de configuración de un motor de credenciales IAM en la interfaz de usuario

Puede recuperar la configuración de un motor utilizando la interfaz de usuario de Secrets Manager. Recuperar una configuración solo es válido cuando se configura el motor de credenciales de IAM con una clave API.

  1. En el motor de secretos Credenciales de IAM, pulse el menú Acciones Icono Acciones para abrir una lista de opciones para la configuración del motor.
  2. Para ver el valor de configuración, pulse Ver configuración.
  3. Pulse Confirmar después de asegurarse de que está en un entorno seguro.

El valor de secreto se visualiza durante 15 segundos y, a continuación, se cierra el diálogo.

Recuperación del valor de configuración de un motor utilizando la CLI

Puede recuperar la configuración de un motor utilizando la CLI Secrets Manager. En el siguiente mandato de ejemplo, sustituya el nombre de configuración del motor por el nombre de la configuración. Recuperar una configuración solo es válido cuando se configura el motor de credenciales de IAM con una clave API.

ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud

Sustituya {instance_ID} y {region} por los valores que se aplican a la instancia de servicio de Secrets Manager. Para encontrar el URL de punto final específico de la instancia, puede copiarlo de la página Puntos finales en la interfaz de usuario de Secrets Manager. Para obtener más información, consulte Visualización de URL de punto final

Recuperación del valor de configuración de un motor utilizando la API

Puede recuperar la configuración de un motor utilizando la API Secrets Manager. En la siguiente solicitud de ejemplo, sustituya el nombre de configuración del motor por el nombre de la configuración. Recuperar una configuración solo es válido cuando se configura el motor de credenciales de IAM con una clave API.

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

Sustituya {instance_ID} y {region} por los valores que se aplican a la instancia de servicio de Secrets Manager. Para encontrar el URL de punto final específico de la instancia, puede copiarlo de la página Puntos finales en la interfaz de usuario de Secrets Manager. Para obtener más información, consulte Visualización de URL de punto final

Una respuesta correcta devuelve el valor de la configuración del motor, junto con otros metadatos. Para obtener más información sobre los parámetros de solicitud obligatorios y opcionales, consulte Obtener configuración.

Próximos pasos

Ahora puede utilizar Secrets Manager generar credenciales IAM. En la interfaz de usuario de Secrets Manager, pulse Secretos > Añadir > credenciales de IAM para empezar a crear secretos.