本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
宣告性政策語法和範例
此頁面說明宣告式政策語法並提供範例。
考量事項
-
當您使用宣告性政策設定服務屬性時,可能會影響多個 APIs。任何不合規動作都將失敗。
-
帳戶管理員將無法修改個別帳戶層級的服務屬性值。
宣告式政策的語法
宣告政策是根據 JSON
下列範例顯示基本宣告政策語法:
{ "ec2_attributes": { "exception_message": { "@@assign": "
Your custom error message.https://myURL
" }, ... [Insert supported service attributes] ... } }
-
ec2_attributes
欄索引鍵名稱。宣告政策一律以指定 的固定金鑰名稱開頭 AWS 服務。這是上面範例政策的第一行。目前宣告政策僅支援 Amazon EC2 相關服務。 -
在 下
ec2_attributes
,您可以使用exception_message
來設定自訂錯誤訊息。如需詳細資訊,請參閱宣告政策的自訂錯誤訊息。 -
在 下
ec2_attributes
,您可以插入一或多個支援的宣告政策。如需這些結構描述,請參閱 支援的宣告政策。
支援的宣告政策
以下是宣告式政策支援的 AWS 服務 和 屬性。在下列某些範例中,可能會壓縮 JSON 空白格式以節省空間。
-
VPC 封鎖公開存取
-
序列主控台存取
-
映像區塊公開存取
-
允許的影像設定
-
執行個體中繼資料預設值
-
快照區塊公開存取
- VPC Block Public Access
-
政策效果
控制 Amazon VPCs和子網路中的資源是否可以透過網際網路閘道 (IGWs) 連線到網際網路。如需詳細資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的網際網路存取組態。
政策內容
"vpc_block_public_access": { "internet_gateway_block": { // (optional) "mode": { // (required) "@@assign": "
block_ingress
" // off | block_ingress | block_bidirectional }, "exclusions_allowed": { // (required) "@@assign": "enabled
" // enabled | disabled } } }以下是此屬性的可用欄位:
-
"internet_gateway"
:-
"mode"
:-
"off"
:未啟用 VPC BPA。 -
"block_ingress"
:所有連至 VPCs網際網路流量 (排除的 VPCs 或子網路除外) 都會遭到封鎖。僅允許進出 NAT 閘道和僅輸出網際網路閘道的流量,因為這些閘道僅允許建立傳出連線。 -
"block_bidirectional"
:往返網際網路閘道和輸出限定網際網路閘道 (排除 VPCs和子網路除外) 的所有流量都會遭到封鎖。
-
-
-
"exclusions_allowed"
:排除是一種模式,可套用至單一 VPC 或子網路,其會將其從帳戶的 VPC BPA 模式排除,並允許雙向或僅輸出存取。-
"enabled"
: 排除可由帳戶建立。 -
"disabled"
: 帳戶無法建立排除項目。
注意
您可以使用 屬性來設定是否允許排除,但無法使用此屬性本身建立排除。若要建立排除項目,您必須在擁有 VPC 的帳戶中建立排除項目。如需建立 VPC BPA 排除的詳細資訊,請參閱《Amazon VPC 使用者指南》中的建立和刪除排除。
-
考量
如果您在宣告式政策中使用此屬性,則無法使用下列操作來修改範圍內帳戶的強制執行組態。此清單並不詳盡:
-
ModifyVpcBlockPublicAccessOptions
-
CreateVpcBlockPublicAccessExclusion
-
ModifyVpcBlockPublicAccessExclusion
-
- Serial Console Access
-
政策效果
控制 EC2 序列主控台是否可存取。如需 EC2 序列主控台的詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 EC2 序列主控台。
政策內容
"serial_console_access": { "status": { // (required) "@@assign": "
enabled
" // enabled | disabled } }以下是此屬性的可用欄位:
-
"status"
:-
"enabled"
:允許 EC2 序列主控台存取。 -
"disabled"
:EC2 序列主控台存取遭到封鎖。
-
考量
如果您在宣告式政策中使用此屬性,則無法使用下列操作來修改範圍內帳戶的強制執行組態。此清單並不詳盡:
-
EnableSerialConsoleAccess
-
DisableSerialConsoleAccess
-
- Image Block Public Access
-
政策效果
控制 Amazon Machine Image (AMIs) 是否可公開共享。如需 AMIs 的詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 Amazon Machine Image (AMIs)。
政策內容
"image_block_public_access": { "state": { // (required) "@@assign": "
block_new_sharing
" // unblocked | block_new_sharing } }以下是此屬性的可用欄位:
-
"state"
:-
"unblocked"
:AMIs的公開共用沒有限制。 -
"block_new_sharing"
:封鎖 AMIs的新公開共用。已公開共用AMIs 仍可公開使用。
-
考量
如果您在宣告式政策中使用此屬性,則無法使用下列操作來修改範圍內帳戶的強制執行組態。此清單並不詳盡:
-
EnableImageBlockPublicAccess
-
DisableImageBlockPublicAccess
-
- Allowed Images Settings
-
政策效果
使用允許的 AMI 控制 Amazon EC2 中 Amazon Machine Image (AMIs探索和使用。如需 AMIs的詳細資訊,請參閱《Amazon Elastic Compute Cloud AMIs 使用者指南》中的使用允許的 AMI 控制 Amazon EC2 中的 AMIs 的探索和使用Amazon EC2。
政策內容
以下是此屬性的可用欄位:
"allowed_images_settings": { "state": { // (required) "@@assign": "
enabled
" // enabled | disabled | audit_mode }, "image_criteria": { // (optional) "criteria_1": { "marketplace_product_codes": { // limit 50 "@@append": [ "abcdefg1234567890
" // Letters (A–Z, a–z) and numbers (0–9) and Length: 1-25 characters ] } }, "criteria_2": { "allowed_image_providers": { // limit 200 "@@append": [ "123456789012
", // amazon | aws_marketplace | aws_backup_vault | 12 digit account ID "123456789013
" ] }, "creation_date_condition": { "maximum_days_since_created": { "@@assign":300
// Minimum value of 0. Maximum value of 2147483647 } } }, "criteria_3": { "allowed_image_providers": { // limit 200 "@@assign": [ "123456789014
" // amazon | aws_marketplace | aws_backup_vault | 12 digit account ID ] }, "image_names": { // limit 50 "@@assign": [ "golden-ami-*
" ] } }, "criteria_4": { "allowed_image_providers": { "@@assign": [ "amazon
" // amazon | aws_marketplace | aws_backup_vault | 12 digit account ID ] }, "deprecation_time_condition": { "maximum_days_since_deprecated": { "@@assign":0
// Minimum value of 0. Maximum value of 2147483647 } } } } }-
"state"
:-
"enabled"
: 屬性為作用中並強制執行。 -
"disabled"
: 屬性為非作用中且未強制執行。 -
"audit_mode"
: 屬性處於稽核模式。這表示它會識別不合規的映像,但不會封鎖其使用。
-
-
"image_criteria"
:條件清單。最多支援 10 個條件,其名稱為 criteria_1 到 criteria_10-
"allowed_image_providers"
:以逗號分隔的 12 位數帳戶 IDs 清單或 amazon、aws_marketplace、aws_backup_vault 的擁有者別名。 -
"image_names"
:允許的映像名稱。名稱可以包含萬用字元 (? 和 *)。長度:1–128 個字元。使用 ?,最少為 3 個字元。 -
"marketplace_product_codes"
:允許映像的 AWS Marketplace 產品代碼。長度:1-25 個字元 有效字元:字母 (A–Z、a–z) 和數字 (0–9) -
"creation_date_condition"
:允許影像的最長存留期。-
"maximum_days_since_created"
:自建立映像以來已經過的天數上限。有效範圍:最小值為 0。最大值為 2147483647。
-
-
"deprecation_time_condition"
:自允許的映像棄用以來的最長期間。-
"maximum_days_since_deprecated"
:自影像棄用以來已經過的天數上限。有效範圍:最小值為 0。最大值為 2147483647。
-
-
考量
如果您在宣告式政策中使用此屬性,則無法使用下列操作來修改範圍內帳戶的強制執行組態。此清單並不詳盡:
-
EnableAllowedImagesSettings
-
ReplaceImageCriteriaInAllowedImagesSettings
-
DisableAllowedImagesSettings
-
- Instance Metadata Defaults
-
政策效果
控制所有新 EC2 執行個體啟動的 IMDS 預設值。請注意,此組態只會設定預設值,不會強制執行 IMDS 版本設定。如需 IMDS 預設值的詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的 IMDS。
政策內容
以下是此屬性的可用欄位:
"instance_metadata_defaults": { "http_tokens": { // (required) "@@assign": "
required
" // no_preference | required | optional }, "http_put_response_hop_limit": { // (required) "@@assign": "4
" // -1 | 1 -> 64 }, "http_endpoint": { // (required) "@@assign": "enabled
" // no_preference | enabled | disabled }, "instance_metadata_tags": { // (required) "@@assign": "enabled
" // no_preference | enabled | disabled } }-
"http_tokens"
:-
"no_preference"
:其他預設值適用。例如,如果適用,AMI 會預設為 。 -
"required"
:必須使用 IMDSv2。不允許 IMDSv1。 -
"optional"
:允許 IMDSv1 和 IMDSv2。
注意
中繼資料版本
http_tokens
將 設定為required
(必須使用 IMDSv2) 之前,請確定您的所有執行個體都不會進行 IMDSv1 呼叫。 -
-
"http_put_response_hop_limit"
:-
"
:從 -1 到 64 的整數值,代表中繼資料字符可以移動的躍點數目上限。若要表示沒有偏好設定,請指定 -1。Integer
"注意
跳轉限制
如果
http_tokens
設為required
,建議將http_put_response_hop_limit
設為最少 2。如需詳細資訊,請參閱《Amazon Elastic Compute Cloud 使用者指南》中的執行個體中繼資料存取考量事項。
-
-
"http_endpoint"
:-
"no_preference"
:其他預設值適用。例如,如果適用,AMI 會預設為 。 -
"enabled"
:可存取執行個體中繼資料服務端點。 -
"disabled"
:無法存取執行個體中繼資料服務端點。
-
-
"instance_metadata_tags"
:-
"no_preference"
:其他預設值適用。例如,如果適用,AMI 會預設為 。 -
"enabled"
:可從執行個體中繼資料存取執行個體標籤。 -
"disabled"
:無法從執行個體中繼資料存取執行個體標籤。
-
-
- Snapshot Block Public Access
-
政策效果
控制 Amazon EBS 快照是否可公開存取。如需 EBS 快照的詳細資訊,請參閱《Amazon Elastic Block Store 使用者指南》中的 Amazon EBS 快照。
政策內容
"snapshot_block_public_access": { "state": { // (required) "@@assign": "
block_new_sharing
" // unblocked | block_new_sharing | block_all_sharing } }以下是此屬性的可用欄位:
-
"state"
:-
"block_all_sharing"
:封鎖快照的所有公開共用。已公開共用的快照會視為私有,不再公開。 -
"block_new_sharing"
:封鎖快照的新公開共用。已公開共用的快照仍可公開使用。 -
"unblocked"
:不限制公開共用快照。
-
考量
如果您在宣告式政策中使用此屬性,則無法使用下列操作來修改範圍內帳戶的強制執行組態。此清單並不詳盡:
-
EnableSnapshotBlockPublicAccess
-
DisableSnapshotBlockPublicAccess
-