Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sintaks dan contoh kebijakan tag
Halaman ini menjelaskan sintaks kebijakan tag dan memberikan contoh.
Topik
Sintaks kebijakan tag
Kebijakan tag adalah file plaintext yang terstruktur sesuai dengan aturan JSON
Kebijakan tag berikut menunjukkan sintaks kebijakan tag basic:
{ "tags": { "costcenter": { "tag_key": { "@@assign": "CostCenter" }, "tag_value": { "@@assign": [ "100", "200", "300*" ] }, "enforced_for": { "@@assign": [ "secretsmanager:ALL_SUPPORTED" ] } } } }
Sintaks kebijakan tag mencakup elemen-elemen berikut:
-
Nama kunci bidang
tags. Kebijakan tag selalu dimulai dengan nama kunci tetap ini. Ini adalah baris teratas dalam contoh kebijakan di atas. -
Sebuah kunci kebijakan yang secara unik mengidentifikasi pernyataan kebijakan. Ini harus sesuai dengan nilai untuk kunci tag, kecuali untuk perlakuan kasus. Nilai kebijakan peka huruf besar/kecil.
Dalam contoh ini,
costcenteradalah kunci kebijakan. -
Setidaknya satu kunci tag yang menentukan kunci tag yang diperbolehkan dengan kapitalisasi yang Anda ingin dipatuhi oleh sumber daya. Jika penanganan kasus tidak didefinisikan, maka huruf kecil adalah perlakuan kasus default untuk kunci tag. Nilai untuk kunci tag harus sesuai dengan nilai untuk kunci kebijakan. Tapi karena nilai kunci kebijakan sensitif huruf besar kecil, maka kapitalisasi-nya bisa berbeda.
Dalam contoh ini,
CostCenteradalah kunci tag. Ini adalah perlakuan kasus yang diperlukan untuk kepatuhan dengan kebijakan tag. Sumber daya dengan perlakuan kasus alternatif untuk kunci tag ini tidak patuh dengan kebijakan tag.Anda dapat menentukan beberapa kunci tag dalam kebijakan tag.
-
(Opsional) Daftar satu atau lebih nilai tag yang dapat diterima untuk kunci tag. Jika kebijakan tag tidak menentukan nilai tag untuk kunci tag tersebut, maka nilai apapun (termasuk tidak ada nilai sama sekali) akan dianggap patuh.
Dalam contoh ini, nilai yang dapat diterima untuk kunci
CostCentertag adalah100,200, dan300*. -
(Opsional) Sebuah opsi
enforced_foryang menunjukkan apakah akan mencegah operasi penandaan tidak patuh pada layanan tertentu dan sumber daya. Di konsol tersebut, ini adalah opsi Mencegah operasi tidak patuh untuk tag ini di editor visual untuk membuat kebijakan tag. Nilai pengaturan default untuk opsi ini adalah null.Kebijakan tag contoh menetapkan bahwa
CostCentertag yang diterapkan ke semua AWS Secrets Manager sumber daya harus sesuai dengan kebijakan ini.Awas
Anda hanya harus mengubah opsi ini dari pengaturan default-nya jika Anda berpengalaman menggunakan kebijakan tag. Jika tidak, Anda dapat mencegah pengguna di akun organisasi Anda dari membuat sumber daya yang mereka butuhkan.
-
Operator yang menentukan bagaimana kebijakan tag bergabung dengan kebijakan tag lain dalam pohon organisasi untuk membuat kebijakan tag efektif. Dalam contoh ini,
@@assigndigunakan untuk menetapkan string ketag_key,tag_value, danenforced_for. Untuk informasi lebih lanjut tentang operator, lihat Operator pewarisan. -
Anda dapat menggunakan
*wildcard dalam nilai tag.-
Anda dapat menggunakan satu wildcard saja untuk setiap nilai tag. Misalnya,
*@example.comdiperbolehkan, tapi*@*.comtidak. -
Anda dapat menggunakan
ALL_SUPPORTEDwildcard dienforced_forlapangan dengan beberapa layanan untuk mengaktifkan penegakan semua sumber daya yang didukung untuk layanan tersebut. Untuk daftar layanan dan jenis sumber daya yang men-supportenforced_for, lihat Layanan dan jenis sumber daya yang men-support penegakan. -
Anda tidak dapat menggunakan wildcard untuk menentukan semua layanan atau menentukan sumber daya untuk semua layanan.
-
Contoh kebijakan tag
Contoh kebijakan tag berikut adalah untuk tujuan informasi saja.
catatan
Sebelum Anda mencoba menggunakan kebijakan tag contoh ini dalam organisasi Anda, perhatikan hal berikut:
-
Pastikan Anda telah mengikuti alur kerja yang direkomendasikan untuk memulai kebijakan tag.
-
Anda harus hati-hati dalam meninjau dan menyesuaikan kebijakan tag ini untuk kebutuhan unik Anda.
-
Semua karakter dalam kebijakan tag Anda tunduk pada ukuran maksimum. Contoh dalam panduan ini menunjukkan kebijakan tag yang diformat dengan spasi kosong ekstra untuk meningkatkan keterbacaannya. Namun, untuk menghemat ruang jika ukuran kebijakan Anda mendekati ukuran maksimum, maka Anda dapat menghapus spasi kosong. Contoh spasi kosong termasuk karakter spasi dan jeda baris yang berada di luar tanda kutip.
-
Sumber daya yang tidak diberi tag tidak akan muncul sebagai tag tidak patuh dalam hasil.
Contoh 1: Tentukan kasus kunci tag di seluruh organisasi
Contoh berikut menunjukkan kebijakan tag yang hanya mendefinisikan dua kunci tag dan kapitalisasi yang Anda inginkan agar akun dalam organisasi Anda menjadi standardisasi.
Kebijakan A — kebijakan tag akar organisasi
{ "tags": { "CostCenter": { "tag_key": { "@@assign": "CostCenter", "@@operators_allowed_for_child_policies": ["@@none"] } }, "Project": { "tag_key": { "@@assign": "Project", "@@operators_allowed_for_child_policies": ["@@none"] } } } }
Kebijakan tag ini mendefinisikan dua kunci tag: CostCenter dan Project. Melampirkan kebijakan tag ini pada root organisasi memiliki efek berikut:
-
Semua akun dalam organisasi Anda akan mewarisi kebijakan tag ini.
-
Semua akun dalam organisasi Anda harus menggunakan perlakuan kasus yang ditetapkan untuk kepatuhan. Sumber daya dengan tag
CostCenterdanProjectadalah patuh. Sumber daya dengan perlakuan kasus alternatif untuk kunci tag (misalnya,costcenter,Costcenter, atauCOSTCENTER) adalah tidak patuh. -
Garis
@@operators_allowed_for_child_policies": ["@@none"]mengunci kunci tag. Kebijakan tag yang dilampirkan di bagian bawah pohon organisasi (kebijakan anak) tidak dapat menggunakan pengaturan nilai operator untuk mengubah kunci tag, termasuk perlakuan kasus. -
Seperti semua kebijakan tag, Sumber daya atau tag yang tak ditandai yang tidak didefinisikan dalam kebijakan tag tidak akan dievaluasi demi kepatuhan terhadap kebijakan tag.
AWS merekomendasikan agar Anda menggunakan contoh ini sebagai panduan dalam membuat kebijakan tag serupa untuk kunci tag yang ingin Anda gunakan. Lampirkan kebijakan tag ke organisasi root. Kemudian buat kebijakan tag yang serupa dengan contoh berikutnya, yang hanya mendefinisikan nilai yang dapat diterima saja untuk kunci tag yang didefinisikan tersebut.
Langkah berikutnya: Tentukan nilai
Asumsikan bahwa Anda melampirkan kebijakan tag sebelumnya ke root organisasi. Selanjutnya, Anda dapat membuat kebijakan tag seperti berikut ini dan melampirkannya pada akun. Kebijakan ini mendefinisikan nilai yang dapat diterima untuk kunci tag CostCenter dan Project.
Kebijakan B — kebijakan tag akun
{ "tags": { "CostCenter": { "tag_value": { "@@assign": [ "Production", "Test" ] } }, "Project": { "tag_value": { "@@assign": [ "A", "B" ] } } } }
Jika Anda melampirkan kebijakan A ke root organisasi dan kebijakan B pada akun, maka kebijakan tersebut bergabung untuk membuat kebijakan tag efektif berikut ini untuk akun tersebut:
Kebijakan A+Kebijakan B = kebijakan tag efektif untuk akun
{ "tags": { "Project": { "tag_value": [ "A", "B" ], "tag_key": "Project" }, "CostCenter": { "tag_value": [ "Production", "Test" ], "tag_key": "CostCenter" } } }
Untuk informasi selengkapnya tentang pewarisan kebijakan, termasuk contoh cara kerja operator pewarisan dan contoh kebijakan tag yang efektif, lihat. Memahami pewarisan kebijakan deklaratif
Contoh 2: Mencegah penggunaan kunci tag
Untuk mencegah penggunaan kunci tag, Anda dapat melampirkan kebijakan tag seperti berikut pada entitas organisasi.
Kebijakan contoh ini menetapkan bahwa tidak ada nilai yang dapat diterima untuk kunci tag Color. Hal ini juga menetapkan bahwa tidak ada operator yang diizinkan dalam kebijakan tag anak. Oleh karena itu, setiap tag Color pada sumber daya pada akun yang terpengaruh dianggap tidak patuh. Namun, enforced_for sebenarnya mencegah akun yang terpengaruh dari penandaan tabel Amazon DynamoDB dengan tag Color saja.
{ "tags": { "Color": { "tag_key": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": "Color" }, "tag_value": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": [] }, "enforced_for": { "@@assign": [ "dynamodb:table" ] } } } }
Contoh 3: Menentukan kebijakan tag untuk semua jenis sumber daya yang didukung dari suatu AWS layanan
Untuk menentukan kebijakan tag untuk semua jenis sumber daya yang didukung dari AWS layanan tertentu, Anda menggunakan ALL_SUPPORTED wildcard.
Kebijakan ini menggunakan ALL_SUPPORTED wildcard untuk menentukan bahwa semua instance Amazon EC2 dengan Environment kunci tag hanya dapat memiliki nilai tag atau. Prod Non-prod Wildcard ini menyediakan alternatif satu baris yang efektif untuk mencantumkan setiap instans Amazon EC2 satu per satu. Untuk daftar layanan dan jenis sumber daya yang mendukung ALL_SUPPORTED wildcard, lihatLayanan dan jenis sumber daya yang men-support penegakan.
{ "tags": { "Environment": { "tag_key": { "@@assign": "Environment", "@@operators_allowed_for_child_policies": ["@@none"] }, "tag_value": { "@@assign": [ "Prod", "Non-prod" ], "@@operators_allowed_for_child_policies": ["@@none"] }, "enforced_for": { "@@assign": [ "ec2:ALL_SUPPORTED" ] } } } }
Contoh 4: Menerapkan kunci tag yang diperlukan untuk kepatuhan
Contoh ini menunjukkan cara menentukan kebijakan tag yang mengharuskan semua sumber daya menyertakan tag kepatuhan wajib. Organizations umumnya menggunakan pola ini untuk memastikan alokasi biaya yang tepat, pelacakan kepemilikan, dan identifikasi lingkungan.
{ "tags": { "CostCenter": { "report_required_tag_for": { "@@assign": [ "ec2:instance", "s3:bucket", "rds:db", "lambda:function" ] }, "tag_key": { "@@assign": "CostCenter" } }, "Environment": { "report_required_tag_for": { "@@assign": [ "ec2:ALL_SUPPORTED", "rds:ALL_SUPPORTED", "s3:ALL_SUPPORTED" ] }, "tag_key": { "@@assign": "Environment" }, "tag_value": { "@@assign": [ "Production", "Staging", "Development", "Test" ] } }, "Owner": { "report_required_tag_for": { "@@assign": [ "ec2:ALL_SUPPORTED" ] }, "tag_key": { "@@assign": "Owner" } } } }
Saat Anda menerapkan kebijakan ini dan mengonfigurasi alat IAC Anda dengan penegakan kebijakan tag:
-
CostCenter: Diperlukan untuk instans EC2, bucket S3, database RDS, dan fungsi Lambda
-
Lingkungan: Diperlukan untuk semua sumber daya EC2, RDS, dan S3, dengan nilai yang diizinkan terbatas pada Produksi, Pementasan, Pengembangan, atau Pengujian
-
Pemilik: Diperlukan untuk semua sumber daya EC2 di organisasi Anda
Contoh kode infrastruktur yang sesuai dengan kebijakan ini:
EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-0c02fb55956c7d316 InstanceType: t2.micro Tags: - Key: CostCenter Value: CC-12345 - Key: Environment Value: Test - Key: Owner Value: john.doe@company.com
Jika Anda mencoba membuat sumber daya tanpa tag yang diperlukan, penyebaran IAC Anda akan gagal atau menghasilkan peringatan selama fase perencanaan, tergantung pada konfigurasi Anda. Saat dikonfigurasi dalam mode gagal, penerapan diblokir sebelum sumber daya apa pun dibuat. Saat dikonfigurasi dalam mode peringatan, penerapan berlangsung tetapi memberi tahu tim Anda tentang tag yang hilang. Pesan kesalahan validasi mengidentifikasi dengan tepat tag yang diperlukan yang hilang dan sumber daya mana yang membutuhkannya.
Untuk instruksi konfigurasi khusus untuk alat IAC Anda:
-
CloudFormation: Lihat Menegakkan dengan CloudFormation untuk mengaktifkan hook kepatuhan penandaan
-
Terraform: Lihat Menegakkan dengan Terraform untuk mengaktifkan validasi kebijakan tag di Penyedia AWS
-
Catatan: Lihat Menegakkan dengan Pulumi untuk mengaktifkan paket kebijakan Pelaporan Kebijakan Tag