View a markdown version of this page

Sintaks dan contoh kebijakan tag - AWS Organizations

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.

Sintaks kebijakan tag

Kebijakan tag adalah file plaintext yang terstruktur sesuai dengan aturan JSON. Sintaks untuk kebijakan tag mengikuti sintaks untuk jenis kebijakan deklaratif. Untuk pembahasan lengkap tentang sintaks itu, lihat Memahami pewarisan kebijakan deklaratif. Topik ini berfokus pada penerapan sintaks umum untuk persyaratan spesifik jenis kebijakan tag.

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, costcenter adalah 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, CostCenter adalah 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 CostCenter tag adalah100,200, dan300*.

  • (Opsional) Sebuah opsi enforced_for yang 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 CostCenter tag 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, @@assign digunakan untuk menetapkan string ke tag_key, tag_value, dan enforced_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.com diperbolehkan, tapi *@*.com tidak.

    • Anda dapat menggunakan ALL_SUPPORTED wildcard di enforced_for lapangan dengan beberapa layanan untuk mengaktifkan penegakan semua sumber daya yang didukung untuk layanan tersebut. Untuk daftar layanan dan jenis sumber daya yang men-support enforced_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 CostCenter dan Project adalah patuh. Sumber daya dengan perlakuan kasus alternatif untuk kunci tag (misalnya, costcenter, Costcenter, atau COSTCENTER) 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: