• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola dasbor Amazon CloudWatch mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat dokumentasi CloudWatch Dasbor Amazon.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Struktur pernyataan dan operator bawaan untuk kebijakan persetujuan otomatis dan penolakan akses
Tabel berikut menunjukkan struktur kebijakan persetujuan otomatis dan penolakan akses.
| Komponen | Sintaksis |
|---|---|
| efek |
|
| cakupan |
|
| klausa kondisi |
|
Komponen kebijakan
Kebijakan persetujuan otomatis atau penolakan akses berisi komponen berikut:
-
Efek - Baik
permit(izinkan) atauforbid(tolak) akses. -
Lingkup — Prinsip, tindakan, dan sumber daya yang efeknya berlaku. Anda dapat membiarkan ruang lingkup di Cedar tidak ditentukan dengan tidak mengidentifikasi prinsip, tindakan, atau sumber daya tertentu. Dalam hal ini, kebijakan berlaku untuk semua prinsip, tindakan, dan sumber daya yang mungkin. Untuk akses node just-in-time, selalu ada.
actionAWS::SSM::Action::"getTokenForInstanceAccess" -
Klausul kondisi — Konteks di mana efek berlaku.
Komentar
Anda dapat memasukkan komentar dalam kebijakan Anda. Komentar didefinisikan sebagai baris yang dimulai dengan // dan diakhiri dengan karakter baris baru.
Contoh berikut menunjukkan komentar dalam kebijakan.
// Allows users in the Engineering group from the Platform org to automatically connect to nodes tagged with Engineering and Production keys.
permit (
principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
action == AWS::SSM::Action::"getTokenForInstanceAccess",
resource
)
when {
principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform"
};
Beberapa klausa
Anda dapat menggunakan lebih dari satu klausa kondisi dalam pernyataan kebijakan menggunakan && operator.
// Allow access if node has tag where the tag key is Environment
// & tag value is Development
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
resource.hasTag("Environment") &&
resource.getTag("Environment") == "Development"
};
Karakter yang dicadangkan
Contoh berikut menunjukkan cara menulis kebijakan jika properti konteks menggunakan : (titik koma), yang merupakan karakter cadangan dalam bahasa kebijakan.
permit (
principal,
action == AWS::SSM::Action::"getTokenForInstanceAccess",
resource
)
when {
principal has employeeNumber && principal.employeeNumber like "E-1*" && resource.hasTag("Purpose") && resource.getTag("Purpose") == "Testing"
}
Untuk contoh tambahan, lihat Contoh pernyataan kebijakan.
Just-in-time skema akses simpul
Berikut ini adalah skema Cedar untuk akses node just-in-time.
namespace AWS::EC2 { entity Instance tags String; } namespace AWS::IdentityStore { entity Group; entity User in [Group] { employeeNumber?: String, costCenter?: String, organization?: String, division?: String, }; } namespace AWS::IAM { entity Role; type AuthorizationContext = { principalTags: PrincipalTags, }; entity PrincipalTags tags String; } namespace AWS::SSM { entity ManagedInstance tags String; action "getTokenForInstanceAccess" appliesTo { principal: [AWS::IdentityStore::User], resource: [AWS::EC2::Instance, AWS::SSM::ManagedInstance], context: { "iam": AWS::IAM::AuthorizationContext } }; }
Built-in operator
Saat membuat konteks persetujuan otomatis atau kebijakan penolakan akses menggunakan berbagai kondisi, Anda dapat menggunakan && operator untuk menambahkan kondisi tambahan. Ada juga banyak operator bawaan lainnya yang dapat Anda gunakan untuk menambahkan kekuatan ekspresif tambahan ke kondisi kebijakan Anda. Tabel berikut berisi semua operator bawaan untuk referensi.
| Operator | Jenis dan kelebihan beban | Deskripsi |
|---|---|---|
|
! |
Boolean → Boolean |
Logis tidak. |
|
== |
apa saja → apa saja |
Kesetaraan. Bekerja pada argumen jenis apa pun, bahkan jika tipenya tidak cocok. Nilai dari jenis yang berbeda tidak pernah sama satu sama lain. |
| != | apa saja → apa saja |
Ketidaksetaraan; kebalikan yang tepat dari kesetaraan (lihat di atas). |
|
< |
(panjang, panjang) → Boolean |
Bilangan bulat panjang kurang dari. |
|
<= |
(panjang, panjang) → Boolean |
Bilangan bulat panjang kurang dari-atau-sama dengan. |
|
> |
(panjang, panjang) → Boolean |
Bilangan bulat panjang lebih besar dari. |
|
>= |
(panjang, panjang) → Boolean |
Bilangan bulat panjang lebih besar dari-atau-sama dengan. |
| in | (entitas, entitas) → Boolean | Keanggotaan hierarki (refleksif: A di A selalu benar). |
| (entitas, set (entitas)) → Boolean | Keanggotaan hierarki: A di [B, C,...] benar jika (A dan B) || (A di C) ||... kesalahan jika himpunan berisi non-entitas. | |
| && | (Boolean, Boolean) → Boolean |
Logis dan (hubung singkat). |
| || | (Boolean, Boolean) → Boolean |
Logis atau (hubung singkat). |
| .ada () | entitas → Boolean | Keberadaan entitas. |
| memiliki | (entitas, atribut) → Boolean | Operator infix. e has fmenguji apakah catatan atau entitas e memiliki pengikatan untuk atributf. Meng false em e balikan jika tidak ada atau jika e memang ada tetapi tidak memiliki atributf. Atribut dapat dinyatakan sebagai pengidentifikasi atau literal string. |
| suka | (string, string) → Boolean | Operator infix. t like pmemeriksa apakah teks t cocok dengan polap, yang mungkin menyertakan karakter wildcard * yang cocok dengan 0 atau lebih dari karakter apa pun. Untuk mencocokkan karakter bintang literal dit, Anda dapat menggunakan urutan karakter khusus yang melarikan diri \* dip. |
| .haTag () | (entitas, string) → Boolean | Memeriksa apakah entitas memiliki tag yang ditentukan diterapkan. |
| .getTag () | (entitas, string) → Boolean | Mengembalikan nilai kunci tag yang ditentukan. |
| .berisi () | (set, apa saja) → Boolean | Tetapkan keanggotaan (adalah B elemen dari A). |
| .berisi semua () | (set, set) → Boolean | Menguji jika set A berisi semua elemen dalam set B. |
| .berisi Setiap () | (set, set) → Boolean | Menguji apakah set A berisi salah satu elemen dalam set B. |
Contoh pernyataan kebijakan
Berikut ini adalah contoh pernyataan kebijakan.
// Users assuming IAM roles with a principal tag of "Elevated" can automatically access nodes tagged with the "Environment" key when the value equals "prod"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
// Verify IAM role principal tag
context.iam.principalTags.getTag("AccessLevel") == "Elevated" &&
// Verify the node has a tag with "Environment" tag key and a tag value of "prod"
resource.hasTag("Environment") &&
resource.getTag("Environment") == "prod"
};
// Identity Center users in the "Contractor" division can automatically access nodes tagged with the "Environment" key when the value equals "dev"
permit(principal, action == AWS::SSM::getTokenForInstanceAccess, resource)
when {
// Verify that the user is part of the "Contractor" division
principal.division == "Contractor" &&
// Verify the node has a tag with "Environment" tag key and a tag value of "dev"
resource.hasTag("Environment") &&
resource.getTag("Environment") == "dev"
};
// Identity Center users in a specified group can automatically access nodes tagged with the "Environment" key when the value equals "Production"
permit(principal in AWS::IdentityStore::Group::"d4q81745-r081-7079-d789-14da1EXAMPLE",
action == AWS::SSM::getTokenForInstanceAccess,
resource)
when {
resource.hasTag("Environment") &&
resource.getTag("Environment") == "Production"
};