Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las herramientas automatizadas que usan servicios de Azure siempre deben tener permisos restringidos para asegurarse de que los recursos de Azure son seguros. Por lo tanto, en lugar de tener aplicaciones que inicien sesión como un usuario con privilegios completos, Azure ofrece entidades de servicio. Un principal de servicio de Azure es una identidad creada para su uso con aplicaciones, servicios hospedados y herramientas automatizadas. Esta identidad se usa para acceder a los recursos.
En este tutorial, aprenderá a:
- Crear un principal de servicio
- Inicie sesión usando un principal de servicio y una contraseña
- Inicie sesión utilizando una entidad de servicio y un certificado
- Administración de roles de la entidad de servicio
- Crear un recurso de Azure mediante un principal de servicio
- Restablecer credenciales del principal de servicio
Prerrequisitos
- En una suscripción, debe tener permisos de
User Access Administrator
o deRole Based Access Control Administrator
, o de niveles superiores, para crear una entidad de servicio. Para obtener una lista de los roles disponibles para el control de acceso basado en roles de Azure (RBAC de Azure), consulte Roles integrados de Azure.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefieres ejecutar comandos de referencia CLI localmente, instala la CLI de Azure. Si estás utilizando Windows o macOS, considera ejecutar Azure CLI en un contenedor Docker. Para obtener más información, consulte Cómo ejecutar el Azure CLI en un contenedor de Docker.
Si estás utilizando una instalación local, inicia sesión en Azure CLI utilizando el comando az login. Para finalizar el proceso de autenticación, siga los pasos que se muestran en el terminal. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
Cuando se le solicite, instale la extensión de la CLI de Azure en el primer uso. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para ver la versión y las bibliotecas dependientes que están instaladas. Para actualizar a la versión más reciente, ejecute az upgrade.
Crear un principal de servicio
Use el comando az ad sp create-for-rbac de la CLI de Azure para crear una entidad de servicio.
En este ejemplo no se especifica un --name
parámetro, por lo que se crea automáticamente un nombre que contiene una marca de tiempo.
az ad sp create-for-rbac
Consola de salida:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Si no sigue las convenciones de nomenclatura de recursos y planea crear más adelante un rol y un ámbito para su nueva entidad de servicio, el comando az ad sp create-for-rbac
sin parámetros es una solución aceptable. Sin embargo, sin un rol y un ámbito, la nueva entidad de servicio no tiene acceso a los recursos. Simplemente existe.
Al crear una entidad de servicio sin parámetros, complete también estos pasos:
- Registre la contraseña asignada por el sistema, ya que no puede recuperarla de nuevo. Si pierde la contraseña, restablezcala con az ad sp credential reset como se explica en Restablecer credenciales de entidad de servicio.
- Establezca la asignación de roles para su nuevo principal de servicio usando az role assignment create como se explica en Administrar roles de principales de servicio.
Nota:
Si su cuenta no tiene permisos suficientes para crear una entidad de servicio, az ad sp create-for-rbac
devuelve un mensaje de error que contiene el texto "Privilegios insuficientes para completar la operación". Contacte con su administrador de Microsoft Entra para crear un principal de servicio.
En un directorio de Microsoft Entra ID donde la configuración de usuario Los usuarios pueden registrar aplicaciones se ha establecido en No, debe ser miembro de uno de los siguientes roles integrados de Microsoft Entra ID (que tienen la acción: microsoft.directory/applications/createAsOwner
o microsoft.directory/applications/create
):
- Desarrollador de aplicaciones
- Administrador de aplicaciones
- Administrador de aplicaciones en la nube
- Administrador global
- Administrador de identidades híbridas
Para obtener más información sobre la configuración de usuario en Microsoft Entra ID, consulte Restringir quién puede crear aplicaciones.
Crear una entidad de servicio con rol y ámbito
Como procedimiento recomendado, asigne siempre un principal de servicio específico --role
y --scopes
cuando cree un principal de servicio. Siga estos pasos:
Determine el rol correcto.
Al determinar el rol, use siempre el principio de privilegios mínimos. Por ejemplo, no conceda permisos de entidad de servicio
contributor
a una suscripción si la entidad de servicio solo necesita acceder a Azure Storage dentro de un grupo de recursos. Considere un rol especializado como colaborador de almacenamiento de datos de blobs. Para obtener una lista completa de los roles disponibles en Azure RBAC, consulte Roles integrados de Azure.Obtenga un valor para el parámetro scopes.
Busque y copie el identificador de recurso del recurso de Azure al que debe acceder la nueva entidad de servicio. Esta información suele encontrarse en la página Propiedades o Puntos de conexión de Azure de cada recurso. Estos son ejemplos comunes de
--scopes
, pero dependen del id. de recurso para un formato y un valor reales.Ámbito Ejemplo Suscripción /subscriptions/mySubscriptionID
Grupo de recursos /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Máquina virtual /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Servicio de archivos en la cuenta de almacenamiento /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Factoría de datos /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Para obtener más ejemplos de ámbito, consulte Descripción del ámbito de Azure RBAC.
Cree la entidad de servicio.
En este ejemplo, se crea una nueva entidad de servicio denominada myServicePrincipalName1 con permisos de lector para todos los recursos del grupo de recursos RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
El
--scopes
parámetro acepta una lista de alcances delimitada por espacios. En este ejemplo, se crea una nueva entidad de servicio denominada myServicePrincipalName2 con permisos de lector para todos los recursos del grupo de recursos myRG1. Esta principal de servicio también tiene permisos de lector para myVM ubicada en myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Si decide que ha concedido muy pocos o demasiados permisos al nuevo principal de servicio, modifique los permisos mediante la administración de roles de principal de servicio.
Creación de un principal de servicio mediante variables
También puede crear un principal de servicio utilizando variables:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Para obtener una lista completa de las propiedades del principal de servicio, use az ad sp list y vea Obtener un principal de servicio existente.
Advertencia
Al crear una entidad de servicio de Azure con el comando az ad sp create-for-rbac
, la salida incluye credenciales que debe proteger. Asegúrese de no incluir estas credenciales en el código ni en el control de código fuente. Como alternativa, considere la posibilidad de usar identidades administradas si está disponible para evitar la necesidad de usar credenciales.
Pasos siguientes
Ahora que ha aprendido a crear una entidad de servicio de Azure, continúe con el paso siguiente para aprender a usar entidades de servicio con autenticación basada en contraseña.