AppSpec sezione 'permessi' (solo distribuzioni EC2/locali) - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AppSpec sezione 'permessi' (solo distribuzioni EC2/locali)

Nella sezione 'permissions' viene specificato come le autorizzazioni speciali, se presenti, devono essere applicate a file e cartelle della sezione 'files' dopo essere stati copiati nell'istanza. Puoi specificare più istruzioni object. Questa sezione è facoltativa. Si applica solo alle istanze Amazon Linux, Ubuntu Server e RHEL.

Nota

La 'permissions' sezione viene utilizzata solo per le distribuzioni EC2/on-premise. Non viene utilizzato per le implementazioni AWS Lambda o Amazon ECS.

Questa sezione ha la seguente struttura:

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

Sono disponibili le seguenti istruzioni:

  • object: obbligatorio È un set di oggetti del file system (file o directory/cartelle) a cui vengono applicate le autorizzazioni specificate dopo che gli oggetti del file system sono stati copiati nell'istanza.

    Specificare object con una stringa.

  • pattern: opzionale. Specifica un modello per applicare le autorizzazioni. Se non è specificato o è specificato con i caratteri speciali "**", le autorizzazioni vengono applicate a tutti i file o le directory corrispondenti, a seconda del type.

    Specifica pattern con una stringa tra virgolette ("").

  • except: opzionale. Specifica i file o le directory che sono eccezioni di pattern.

    Specifica except con un elenco di stringhe separate da virgola tra parentesi quadre.

  • owner: opzionale. Il nome del proprietario di object. Se non specificato, tutti i proprietari esistenti applicati alla struttura di directory/cartelle o file originale rimangono invariati dopo l'operazione di copia.

    Specificare owner con una stringa.

  • group: opzionale. Il nome del gruppo per object. Se non specificato, tutti i gruppi esistenti applicati alla struttura di directory/cartelle o file originale rimangono invariati dopo l'operazione di copia.

    Specificare group con una stringa.

  • mode: opzionale. Un valore numerico che specifica le autorizzazioni a cui applicare. object L'impostazione della modalità segue la sintassi del comando Linux chmod.

    Importante

    Se il valore include uno zero iniziale, è necessario racchiuderlo tra virgolette doppie o rimuovere lo zero iniziale in modo che rimangano solo tre cifre.

    Nota

    La notazione simbolica, ad esempio, non u+x è supportata per l'impostazione. mode

    Esempi:

    • mode: "0644"fornisce autorizzazioni di lettura e scrittura al proprietario dell'oggetto (6), autorizzazioni di sola lettura al gruppo (4) e autorizzazioni di sola lettura a tutti gli altri utenti (4).

    • mode: 644concede le stesse autorizzazioni di. mode: "0644"

    • mode: 4755imposta l'attributo setuid (4), fornisce i permessi di controllo completo al proprietario (7), fornisce i permessi di lettura ed esecuzione al gruppo (5) e fornisce i permessi di lettura ed esecuzione a tutti gli altri utenti (5).

      Per altri esempi, consultate la documentazione del comando Linux chmod.

      Se la modalità non è specificata, tutte le modalità esistenti applicate alla struttura originale del file o della cartella rimangono invariate dopo l'operazione di copia.

  • acls: opzionale. Elenco di stringhe di caratteri che rappresenta una o più voci della lista di controllo accessi (ACL) applicate a object. Ad esempio, u:bob:rw rappresenta le autorizzazioni di lettura e scrittura per l'utente bob. Per ulteriori informazioni, consulta gli esempi del formato per le voci ACL nella documentazione del comando setfacl di Linux. Puoi specificare più voci ACL. Se acls non è specificato, tutte le liste di controllo degli accessi esistenti applicate alla struttura di directory/cartelle o file originale rimangono invariate dopo l'operazione di copia. Eventuali liste di controllo degli accessi esistenti vengono sostituite.

    Specifica acls con un trattino (-) seguito da uno spazio e quindi da una stringa, ad esempio, - u:jane:rw. Se hai più liste ACL, ogni lista viene specificata su una riga separata.

    Nota

    L'impostazione di utenti senza nome, gruppi senza nome o altre voci ACL simili causa l'errore del AppSpec file. Utilizza mode per specificare i tipi di autorizzazione.

  • context: opzionale. Per le istanze Security-Enhanced Linux (SELinux), un elenco di etichette di contesto relative alla sicurezza da applicare agli oggetti copiati. Le etichette vengono specificate come chiavi contenenti user, type e range. Per ulteriori informazioni, consulta la documentazione di SELinux. Ogni chiave viene specificata con una stringa. Se non specificato, tutte le etichette esistenti applicate alla struttura di directory/cartelle o file originale rimangono invariate dopo l'operazione di copia.

    • user: opzionale. L'utente SELinux.

    • type: opzionale. Il nome del tipo SELinux.

    • range: opzionale. Lo specificatore dell'intervallo di SELinux. Questo ha effetto solo se Multi-Level Security (MLS) e Multi-Category Security (MCS) sono abilitati sul computer. Se non è abilitata, l’impostazione di range è predefinita su s0.

    Specificare context con una stringa (ad esempio, user: unconfined_u). Ogni context viene specificato su una riga separata.

  • type: opzionale. I tipi di oggetti a cui si applicano le autorizzazioni specificate. type è una stringa che può essere impostata su file o directory. Se file è specificato, le autorizzazioni vengono applicate solo ai file contenuti direttamente in object dopo l'operazione di copia (e non a object stesso). Se directory è specificato, le autorizzazioni vengono applicate in modo ricorsivo a tutte le directory/cartelle contenute ovunque in object dopo l'operazione di copia (ma non a object stesso).

    Specifica type con un trattino (-) seguito da uno spazio e quindi da una stringa, ad esempio, - file.

Esempio di sezione 'Autorizzazioni'

L'esempio seguente mostra come specificare la sezione 'permissions' con le istruzioni object, pattern, except, owner, mode e type. Questo esempio si applica solo alle istanze Amazon Linux, Ubuntu Server e RHEL. In questo esempio presupponiamo che i file e le cartelle seguenti siano copiati nell'istanza in questa gerarchia:

/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

Il AppSpec file seguente mostra come impostare le autorizzazioni per questi file e cartelle dopo che sono stati copiati:

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

Le autorizzazioni risultanti sono le seguenti:

-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

L'esempio seguente mostra come specificare la sezione 'permissions' con l'aggiunta delle istruzioni context e acls. Questo esempio si applica solo alle istanze Amazon Linux, Ubuntu Server e RHEL.

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