AppSpec Bagian 'izin' (EC2/hanya penerapan di lokasi) - AWS CodeDeploy

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AppSpec Bagian 'izin' (EC2/hanya penerapan di lokasi)

'permissions'Bagian ini menentukan bagaimana izin khusus, jika ada, harus diterapkan ke file dan direktori/folder di 'files' bagian setelah mereka disalin ke instance. Anda dapat menentukan beberapa object instruksi. Bagian ini opsional. Ini berlaku untuk Amazon Linux, Ubuntu Server, dan instans RHEL saja.

catatan

'permissions'Bagian ini digunakan hanya untuk penerapan EC2/On-premise. Ini tidak digunakan untuk penyebaran AWS Lambda atau Amazon ECS.

Bagian ini memiliki struktur sebagai berikut:

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

Instruksi adalah sebagai berikut:

  • object – Wajib. Ini adalah satu set objek sistem file (file atau direktori/folder) yang izin yang ditentukan diterapkan setelah objek sistem file disalin ke instance.

    Tentukan object dengan string.

  • pattern – Opsional. Menentukan pola untuk menerapkan izin. Jika tidak ditentukan atau ditentukan dengan karakter khusus"**", izin diterapkan ke semua file atau direktori yang cocok, tergantung pada file. type

    Tentukan pattern dengan string dengan tanda kutip (“”).

  • except – Opsional. Menentukan file atau direktori yang pengecualian untuk. pattern

    Tentukan except dengan daftar string yang dipisahkan koma di dalam tanda kurung siku.

  • owner – Opsional. Nama pemilikobject. Jika tidak ditentukan, semua pemilik yang ada diterapkan ke struktur file atau direktori/folder asli tetap tidak berubah setelah operasi penyalinan.

    Tentukan owner dengan string.

  • group – Opsional. Nama grup untukobject. Jika tidak ditentukan, semua grup yang ada diterapkan ke struktur file atau direktori/folder asli tetap tidak berubah setelah operasi penyalinan.

    Tentukan group dengan string.

  • mode – Opsional. Nilai numerik yang menentukan izin yang akan diterapkan. object Pengaturan mode mengikuti sintaks perintah chmod Linux.

    penting

    Jika nilainya termasuk nol di depan, Anda harus mengelilinginya dengan tanda kutip ganda, atau menghapus nol di depan sehingga hanya tersisa tiga digit.

    catatan

    Notasi simbolik seperti tidak u+x didukung untuk pengaturan. mode

    Contoh:

    • mode: "0644"memberikan izin baca dan tulis kepada pemilik objek (6), izin hanya-baca ke grup (4), dan izin hanya-baca untuk semua pengguna lain (4).

    • mode: 644memberikan izin yang sama seperti. mode: "0644"

    • mode: 4755menetapkan atribut setuid (4), memberikan izin kontrol penuh kepada pemilik (7), memberikan izin baca dan eksekusi ke grup (5), dan memberikan izin baca dan eksekusi ke semua pengguna lain (5).

      Untuk contoh lainnya, lihat dokumentasi perintah Linux chmod.

      Jika mode tidak ditentukan, semua mode yang ada diterapkan ke file asli atau struktur folder tetap tidak berubah setelah operasi penyalinan.

  • acls – Opsional. Daftar string karakter yang mewakili satu atau lebih entri daftar kontrol akses (ACL) yang diterapkan. object Misalnya, u:bob:rw mewakili izin baca dan tulis untuk penggunabob. (Untuk contoh lainnya, lihat contoh format entri ACL dalam dokumentasi setfacl perintah Linux.) Anda dapat menentukan beberapa entri ACL. Jika tidak acls ditentukan, ACL yang ada diterapkan ke file asli atau struktur direktori/folder tetap tidak berubah setelah operasi penyalinan. Ini menggantikan ACL yang ada.

    Tentukan acls dengan tanda hubung (-), diikuti oleh spasi, dan kemudian string (misalnya,- u:jane:rw). Jika Anda memiliki lebih dari satu ACL, masing-masing ditentukan pada baris terpisah.

    catatan

    Menyetel pengguna yang tidak disebutkan namanya, grup yang tidak disebutkan namanya, atau entri ACL serupa lainnya menyebabkan file gagal. AppSpec Gunakan mode untuk menentukan jenis izin ini sebagai gantinya.

  • context – Opsional. Untuk instance yang diaktifkan Security-Enhanced Linux (SELinux), daftar label konteks yang relevan dengan keamanan untuk diterapkan ke objek yang disalin. Label ditentukan sebagai kunci yang berisiuser,type, danrange. (Untuk informasi lebih lanjut, lihat dokumentasi SELinux.) Setiap kunci dimasukkan dengan string. Jika tidak ditentukan, label apa pun yang ada yang diterapkan ke file asli atau struktur direktori/folder tetap tidak berubah setelah operasi penyalinan.

    • user – Opsional. Pengguna SELinux.

    • type – Opsional. Nama tipe SELinux.

    • range – Opsional. Penentu rentang SELinux. Ini tidak berpengaruh kecuali Multi-Level Security (MLS) dan Multi-Category Security (MCS) diaktifkan pada mesin. Jika tidak diaktifkan, range default ke. s0

    Tentukan context dengan string (misalnya,user: unconfined_u). Masing-masing context ditentukan pada garis terpisah.

  • type – Opsional. Jenis objek yang menerapkan izin yang ditentukan. typeadalah string yang dapat diatur ke file ataudirectory. Jika file ditentukan, izin diterapkan hanya untuk file yang segera terkandung dalam object setelah operasi salinan (dan bukan untuk object dirinya sendiri). Jika directory ditentukan, izin diterapkan secara rekursif ke semua direktori/folder yang ada di mana saja object setelah operasi penyalinan (tetapi tidak untuk dirinya sendiri). object

    Tentukan type dengan tanda hubung (-), diikuti oleh spasi, dan kemudian string (misalnya,- file).

Contoh bagian 'Izin'

Contoh berikut menunjukkan cara menentukan 'permissions' bagian denganobject,,pattern,except, ownermode, dan type instruksi. Contoh ini hanya berlaku untuk Amazon Linux, Ubuntu Server, dan instans RHEL. Dalam contoh ini, asumsikan file dan folder berikut disalin ke instance dalam hierarki ini:

/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

AppSpec File berikut menunjukkan cara mengatur izin pada file dan folder ini setelah disalin:

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

Izin yang dihasilkan adalah sebagai berikut:

-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

Contoh berikut menunjukkan cara menentukan 'permissions' bagian dengan penambahan acls dan context instruksi. Contoh ini hanya berlaku untuk Amazon Linux, Ubuntu Server, dan instans 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