Introducci贸n

1

Lo que aprender谩s sobre DevOps con GitLab

2

驴Qu茅 es Devops?

3

El ciclo de vida del Devops

4

Introducci贸n a Gitlab

5

Gitlab vs Github

Administraci贸n

6

Autenticaci贸n

7

Grupos

8

Autorizaci贸n

9

Auditor铆a

10

Proyectos

Planificaci贸n

11

Tipos de desarrollo

12

Planificaci贸n en Gitlab-Issues

13

Planificaci贸n en Gitlab-Etiquetas

14

Planificaci贸n en Gitlab-Pesos

15

Planificaci贸n en Gitlab-Milestones

16

Planificaci贸n en Gitlab-Boards

17

Planificaci贸n en Gitlab-Service Desk

18

Planificaci贸n en Gitlab-Quick actions

Verificaci贸n

19

Inicializaci贸n del repositorio

20

Merge requests

21

Profundizando en Merge requests

22

Continuous Integration-CI

23

Gitlab CI

24

Automatizacion con GitLab Cl

25

Validacion de la configuracion con GitLab Cl

26

gitlab-ci.yml

27

Gitlab pages

28

Implementando Gitlab pages

29

驴Qu茅 es el Desarrollo 脕gil?

30

Gitlab autodevops

31

Implementando GitLab autodevops

32

Habilitando autodevops

Empaquetaci贸n

33

Gitlab container registry

34

Introducci贸n a contenedores

Seguridad

35

Introducci贸n a DevSecOps

36

Firmas de seguridad

37

Pruebas est谩ticas de seguridad

38

Escaneo de contenedores

39

Escaneo de dependencias

40

Pruebas din谩micas de seguridad

41

Gitlab security dashboard

Distribuci贸n

42

Continuous Delivery (CD)

43

Ambientes

44

Review apps

45

Estrategias de Distribuci贸n

46

Feature Flags

47

Rollback

Monitoreo

48

驴Por qu茅 monitorear?

49

M茅tricas de desempe帽o (performance metrics)

50

M茅tricas de salud (health metrics)

51

Metricas de equipo

52

Rastreo de errores

Conclusiones

53

驴Por qu茅 desarrollar con Gitlab?

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Firmas de seguridad

36/53
Recursos

GPG permite identificar, sin lugar a dudas, de qui茅n proviene un commit; a帽ade una capa adicional de seguridad a Git para prevenir 鈥溾渃aballos de troya鈥濃.

Gitlab despliega un banner junto a los commits para mostrar que dichos commits est谩n verificados.

Aportes 21

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

En el minuto 7:45 al parecer en la edici贸n se les olvid贸 colocar la parte donde se obtiene la llave p煤blica, el comando es:

gpg --armor --export mail@gmail.com > key.pub```

En esta clase falt贸 indicar que para que el commit sea firmado con el GPG es necesario agregar la opci贸n 鈥-S鈥 en el commit, sino realiza un commit normal. Ej.:

git commit -S -am "Este es un commit firmado con GPG"```

**Instalaci贸n de GPG en macOS **

-Isntalar el manejador de paquetes para Mac Homebrew

  1. Abrir la terminal y ejecutar el siguiente comando:
    ** /usr/bin/ruby -e 鈥$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)鈥**

  2. Ahora Homebrew solo es una copia superficial para traer la historia completa ejecutamos el siguiente comando:
    git -C 鈥$(brew --repo homebrew/core)鈥 fetch --unshallow

  3. Una ves actualizado nuestro manejador de paquetes instalamos gpg con el siguiente comando:
    brew install gpg

  4. Para verificar que se ha instalado correctamente podemos ejecutar el siguiente comando:
    which gpg, y deber铆a devolvernos la ruta del directorio donde fue instalada por ej: /usr/local/bin/gpg

Para obtener la llave publica :
Pega el siguiente texto sustituyendo el ID de la llave GPG que deseas usar. En este ejemplo, el ID de la llave GPG es 3AA5C34371567BD2:

$ gpg --armor --export 3AA5C34371567BD2# Imprime la llave GPG, en formato ASCII armor

Generating a GPG key
Todos los pasos de esta clase:
https://gitlab.com/help/user/project/repository/gpg_signed_commits/index.md

Les comparto este tutorial que cree basado en est谩 clase.

Para aquellos que quieran instalar pinentry mac:

brew install pinentry-mac``` 

Recuerden que primero tinen que instalar brew 

Recuerden pasar el par谩metro -S a los commits para que tengan la firma digital

git commit -S -m "Esto es un commit"

My summary:

# know if gpg is installed
which gpg

# install gpg with brew
brew install gpg

# installa pineentry mac (pgp handler)
brew install pinentry-mac

# generate key
gpg --full-gen-key
# 1. select algorith (RSA and RSA for default)
# 2. select keysize (the longer the better)
# 3. specify key time validation (1 year could be fine)
# 4. Fill out your personal data. Email must the same as your GitLab account mail

# list keys
# GPG key ID -> that starts with sec i.e. rsa4096/<GPG-key-ID>
gpg -k --keyid-format LONG
gpg --list-secret-key --keyid-format LONG
gpg --list-secret-key --keyid-format LONG <your-email>

# export the public key and add to GitLab (User Settings > GPG Keys)
gpg --armor --export <GPG-key-ID> | pbcopy

# configure git to use the public key to sign commits
git config --global user.signingkey <GPG-key-ID>
git config --global gpg.program gpg

# commit with -S flag to sign
git commit -S -m "My signed commit"

# or tell Git to sign your commits automatically
git config --global commit.gpgsign true


# DELETE GPG KEYS

# first delete private key
gpg --delete-secret-key key-ID

# then delete public key
gpg --delete-key key-ID 
  • Llaves de seguridad GPG nos permiten firmar los commit que realiza un dev. y es un capa adicional de identificaci贸n.
  • Con la firma de los commit evitamos los caballo de troya en el c贸digo, agregando un capa extra de seguridad.
  • Los commits firmados con llaves GPG tienen una etiqueta adicional de verified.
# para generar llave de seguridad.
gpg --full-gen-key
#mostar las llaves generadas
gpg --list-secret-key --keyid-format LONG <correo>
#exportar la llave p煤blica
gpg --armor --export key_id
#configar la llave en git
git config --global user.signingkey key_id
git config --global gpg.program gpg

Normalmente las llaves gpg deben de expirar en un a帽o.

  • El correo que se usa en la generaci贸n de llaves gpg debe ser el mismo que se usa en gitlab.
  • Para a帽adir las llaves GPG en Gitlab Setting/GPG keys.

Por favor pongan su correo鈥 jajaja鈥

Si llegan a el siguiente problema generando las llaves gpg:

Es un problema de permisos, se soluciona cambiando el usuario y grupo de la carpeta ~/.gnupg:

sudo chown -R myuser:myuser ~/.gnupg

Buenas tardes, tiene alguien quien facilite para su uso en Windows?

Aqui un resument en medium que encontre por ahi鈥 https://medium.com/@jma/setup-gpg-for-git-on-macos-4ad69e8d3733

Para generar las claves si o si tenemos que usar GPG de linux? o hay un GPG para windows.

Si les falla la opci贸n --full-gen-key, pueden usar --gen-key.

Hola tengo una duda, yo he podido firmar mis commit sin problemas. Ahora. 驴Existe alguna forma de controlar que nadie pueda dar commit en mi pc si los mismos no est谩n firmados? La cuesti贸n esta que si no ponemos el prefijo -S, el commit se va sin firmar, por ejemplo, yo utilizo el IDE Intellij para dar los commit y este por defecto no aplica el prefijo -S, por lo que todos los commit que haga usando le GUI del IDE no van a estar firmados.

Un dato, si al aplicar un commit les manda este error:

 git commit -S -m "test gpg"
error: gpg failed to sign the data
fatal: failed to write commit object

exporten la variable GPG_TTY

export GPG_TTY=$(tty)

Con esto les pedir谩 la passphrase de sus gpg y funcionara su commit.

Para dejarlo permanente, agregen la variable al .bash_profile de su usuario.

Ac谩 una gu铆a del paso a paso de la configuraci贸n de SSH y de GPG.

Para los que usan Mac y Brew, la instalaci贸n del package gnupg:

brew install gnupg

yo uso syspeace y rdp guard para la seguridad de mis servidores

Para los que quieran usar la gpg en windows descargen de aca el gpg https://www.gpg4win.org/ y luego en el command pront de windows podran seguir los pasos.
Si es sale error al hacer el commit usen este comando para indicar la ruta de instalacion del gpg, para saber la ruta de instalacion usen 鈥渨here gpg鈥. con eso ya les deberia funcionar en windows

git config --global gpg.program "/c/Program Files/Git/usr/bin/gpg.exe"