AppSpec Sección de «permisos» (EC2/Solo despliegues locales) - AWS CodeDeploy

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AppSpec Sección de «permisos» (EC2/Solo despliegues locales)

La sección 'permissions' especifica cómo los permisos especiales, si hay alguno, deben aplicarse a los archivos y directorios/carpetas de la sección 'files' una vez copiados en la instancia. Puede especificar varias instrucciones object. Esta sección es opcional. Se aplica únicamente a Amazon Linux, Ubuntu Server e RHEL instancias.

nota

La 'permissions' sección se utiliza únicamente para las implementaciones de EC2 /On-Premises. No se usa para despliegues de AWS Lambda o AmazonECS.

Esta sección tiene la siguiente estructura:

permissions: - object: object-specification pattern: pattern-specification except: exception-specification owner: owner-account-name group: group-name mode: mode-specification acls: - acls-specification context: user: user-specification type: type-specification range: range-specification type: - object-type

Las instrucciones son las siguientes:

  • object: obligatorio. Este es un conjunto de objetos del sistema de archivos (archivos o directorios/carpetas) a los que se aplican los permisos especificados una vez que se copian en la instancia.

    Especifique object con una cadena.

  • pattern: opcional. Especifica un patrón para aplicar permisos. Si no se especifica o se especifica con los caracteres especiales "**", los permisos se aplican a todos los archivos o directorios coincidentes, en función del valor de type.

    Especifique pattern con una cadena con comillas ("").

  • except: opcional. Especifica los archivos o directorios que son excepciones a pattern.

    Especifique except con una lista separada por comas de cadenas entre corchetes.

  • owner: opcional. El nombre del propietario de object. Si no se especifica, todos los propietarios existentes aplicados a la estructura original de archivos o directorios/carpetas permanecen sin cambios después de la operación de copia.

    Especifique owner con una cadena.

  • group: opcional. El nombre del grupo de object. Si no se especifica, todos los grupos existentes aplicados a la estructura original de archivos o directorios/carpetas permanecen sin cambios después de la operación de copia.

    Especifique group con una cadena.

  • mode: opcional. Un valor numérico que especifica los permisos que se van a aplicar a object. La configuración del modo sigue la sintaxis del comando chmod de Linux.

    importante

    Si el valor incluye un cero a la izquierda, debe ponerlo entre comillas dobles o eliminar el cero inicial para que solo queden tres dígitos.

    nota

    El ajuste u+x no admite una notación simbólica como mode.

    Ejemplos:

    • mode: "0644" otorga permisos de lectura y escritura al propietario del objeto (6), permisos de solo lectura al grupo (4) y permisos de solo lectura a todos los demás usuarios (4).

    • mode: 644 concede los mismos permisos que mode: "0644".

    • mode: 4755 establece el atributo setuid (4), otorga permisos de control total al propietario (7), otorga permisos de lectura y ejecución al grupo (5) y otorga permisos de lectura y ejecución a todos los demás usuarios (5).

      Para ver más ejemplos, consulte la documentación del comando chmod de Linux.

      Si no se especifica mode, todos los modos existentes aplicados a la estructura original de archivos o carpetas permanecen sin cambios después de la operación de copia.

  • acls: opcional. Lista de cadenas de caracteres que representan una o más entradas de la lista de control de acceso (ACL) a las que se ha aplicado. object Por ejemplo, u:bob:rw representa permisos de lectura y escritura para el usuario bob. (Para ver más ejemplos, consulte los ejemplos de formatos de ACL entrada en la documentación de setfacl comandos de Linux). Puede especificar varias ACL entradas. Si no acls se especifica, cualquier elemento existente ACLs aplicado a la estructura original de archivos o directorios o carpetas permanecerá inalterada tras la operación de copia. Estas sustituyen a las existentes. ACLs

    Especifique una acls con un guion (-), seguido de un espacio y, a continuación, una cadena (por ejemplo, - u:jane:rw). Si tiene más de unoACL, cada uno de ellos se especifica en una línea independiente.

    nota

    Si se configuran usuarios sin nombre, grupos sin nombre u otras ACL entradas similares, se produce un error en el AppSpec archivo. Utilice mode para especificar estos tipos de permisos en su lugar.

  • context: opcional. En el caso de las instancias habilitadas para Linux (SELinux) con seguridad mejorada, una lista de etiquetas de contexto relevantes para la seguridad que se deben aplicar a los objetos copiados. Las etiquetas se especifican como claves que contienen user, type y range. (Para obtener más información, consulte la documentación). SELinux Cada clave se escribe con una cadena. Si no se especifica, todas las etiquetas existentes aplicadas a la estructura original de archivos o directorios/carpetas permanecen sin cambios después de la operación de copia.

    • user: opcional. El SELinux usuario.

    • type: opcional. El nombre del SELinux tipo.

    • range: opcional. El especificador SELinux de rango. Esto no tiene ningún efecto a menos que la seguridad de varios niveles (MLS) y la seguridad de varias categorías (MCS) estén habilitadas en la máquina. Si no está habilitada, el valor predeterminado de range es s0.

    Especifique context con una cadena (por ejemplo, user: unconfined_u). Cada context se especifica en una línea separada.

  • type: opcional. Los tipos de objetos a los que se van a aplicar los permisos especificados. type es una cadena que se puede establecer en file o en directory. Si se especifica file, los permisos se aplican únicamente a los archivos que estén incluidos en object después de la operación de copia (y no al propio object). Si se especifica directory, los permisos se aplican recursivamente a todos los directorios o carpetas incluidos en object después de la operación de copia (y no al propio object).

    Especifique type con un guion (-), seguido de un espacio y, a continuación, una cadena (por ejemplo, - file).

Ejemplo de la sección "permissions"

En el siguiente ejemplo se muestra cómo especificar la sección 'permissions' con las instrucciones object, pattern, except, owner, mode y type. Este ejemplo se aplica únicamente a Amazon Linux, Ubuntu Server e RHEL instancias. En este ejemplo, se presupone que se copian los siguientes archivos y carpetas en la instancia en esta jerarquía:

/tmp `-- my-app |-- my-file-1.txt |-- my-file-2.txt |-- my-file-3.txt |-- my-folder-1 | |-- my-file-4.txt | |-- my-file-5.txt | `-- my-file-6.txt `-- my-folder-2 |-- my-file-7.txt |-- my-file-8.txt |-- my-file-9.txt `-- my-folder-3

El siguiente AppSpec archivo muestra cómo establecer los permisos en estos archivos y carpetas después de copiarlos:

version: 0.0 os: linux # Copy over all of the folders and files with the permissions they # were originally assigned. files: - source: ./my-file-1.txt destination: /tmp/my-app - source: ./my-file-2.txt destination: /tmp/my-app - source: ./my-file-3.txt destination: /tmp/my-app - source: ./my-folder-1 destination: /tmp/my-app/my-folder-1 - source: ./my-folder-2 destination: /tmp/my-app/my-folder-2 # 1) For all of the files in the /tmp/my-app folder ending in -3.txt # (for example, just my-file-3.txt), owner = adm, group = wheel, and # mode = 464 (-r--rw-r--). permissions: - object: /tmp/my-app pattern: "*-3.txt" owner: adm group: wheel mode: 464 type: - file # 2) For all of the files ending in .txt in the /tmp/my-app # folder, but not for the file my-file-3.txt (for example, # just my-file-1.txt and my-file-2.txt), # owner = ec2-user and mode = 444 (-r--r--r--). - object: /tmp/my-app pattern: "*.txt" except: [my-file-3.txt] owner: ec2-user mode: 444 type: - file # 3) For all the files in the /tmp/my-app/my-folder-1 folder except # for my-file-4.txt and my-file-5.txt, (for example, # just my-file-6.txt), owner = operator and mode = 646 (-rw-r--rw-). - object: /tmp/my-app/my-folder-1 pattern: "**" except: [my-file-4.txt, my-file-5.txt] owner: operator mode: 646 type: - file # 4) For all of the files that are immediately under # the /tmp/my-app/my-folder-2 folder except for my-file-8.txt, # (for example, just my-file-7.txt and # my-file-9.txt), owner = ec2-user and mode = 777 (-rwxrwxrwx). - object: /tmp/my-app/my-folder-2 pattern: "**" except: [my-file-8.txt] owner: ec2-user mode: 777 type: - file # 5) For all folders at any level under /tmp/my-app that contain # the name my-folder but not # /tmp/my-app/my-folder-2/my-folder-3 (for example, just # /tmp/my-app/my-folder-1 and /tmp/my-app/my-folder-2), # owner = ec2-user and mode = 555 (dr-xr-xr-x). - object: /tmp/my-app pattern: "*my-folder*" except: [tmp/my-app/my-folder-2/my-folder-3] owner: ec2-user mode: 555 type: - directory # 6) For the folder /tmp/my-app/my-folder-2/my-folder-3, # group = wheel and mode = 564 (dr-xrw-r--). - object: /tmp/my-app/my-folder-2/my-folder-3 group: wheel mode: 564 type: - directory

Los permisos resultantes son los siguientes:

-r--r--r-- ec2-user root my-file-1.txt -r--r--r-- ec2-user root my-file-2.txt -r--rw-r-- adm wheel my-file-3.txt dr-xr-xr-x ec2-user root my-folder-1 -rw-r--r-- root root my-file-4.txt -rw-r--r-- root root my-file-5.txt -rw-r--rw- operator root my-file-6.txt dr-xr-xr-x ec2-user root my-folder-2 -rwxrwxrwx ec2-user root my-file-7.txt -rw-r--r-- root root my-file-8.txt -rwxrwxrwx ec2-user root my-file-9.txt dr-xrw-r-- root wheel my-folder-3

En el siguiente ejemplo se muestra cómo especificar la sección 'permissions' con la adición de las instrucciones acls y context. Este ejemplo se aplica únicamente a Amazon Linux, Ubuntu Server e RHEL instancias.

permissions: - object: /var/www/html/WordPress pattern: "**" except: [/var/www/html/WordPress/ReadMe.txt] owner: bob group: writers mode: 644 acls: - u:mary:rw - u:sam:rw - m::rw context: user: unconfined_u type: httpd_sys_content_t range: s0 type: - file