การกรองจุดสิ้นสุดของตัวเชื่อมต่อ (พรีวิว)
[บทความนี้เป็นคู่มือรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]
การกรองจุดสิ้นสุดของตัวเชื่อมต่อช่วยให้ผู้ดูแลระบบควบคุมว่าผู้สร้างปลายทางรายใดสามารถเชื่อมต่อด้วยเมื่อสร้างแอป โฟลว์ หรือแชทบอท ซึ่งมีการกำหนดค่าภายในนโยบายการป้องกันการสูญหายของข้อมูล (DLP) และพร้อมใช้งานสำหรับตัวเชื่อมต่อหกตัวเท่านั้น:
- HTTP
- HTTP ที่มี Microsoft Entra ID (AD)
- HTTP Webhook
- SQL Server (รวมถึงการใช้ SQL Server Connector เพื่อเข้าถึงคลังข้อมูล Azure Synapse)
- ที่เก็บข้อมูล Azure Blob
- SMTP
เมื่อผู้สร้างพยายามเชื่อมต่อแอป โฟลว์ หรือแชทบอทของพวกเขากับตำแหน่งข้อมูลที่ถูกบล็อก พวกเขาจะพบข้อความแสดงข้อผิดพลาด DLP
คำเตือน
กฎการกรองจุดสิ้นสุดไม่ถูกบังคับใช้กับตัวแปรสภาพแวดล้อม อินพุตที่กำหนดเอง หรือจุดสิ้นสุดใดๆ ที่สร้างแบบไดนามิกที่รันไทม์ เฉพาะจุดสิ้นสุดแบบคงที่เท่านั้นที่จะได้รับการประเมินในตัวออกแบบแอป โฟลว์ หรือแชทบอท สำหรับข้อมูลเพิ่มเติม ให้ดู ข้อจำกัดที่ทราบ
สำคัญ
คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น
เพิ่มกฎการกรองจุดสิ้นสุดให้กับนโยบาย DLP ของคุณ
คอลัมน์ จุดสิ้นสุดที่กำหนดค่าได้ บนหน้า ตัวเชื่อมต่อที่สร้างไว้ล่วงหน้า ใน นโยบายข้อมูล ระบุว่าความสามารถการกรองจุดสิ้นสุดรองรับตัวเชื่อมต่อหรือไม่
ถ้าค่าของคอลัมน์ จุดสิ้นสุดที่กำหนดค่าได้ คือ ใช่ คุณสามารถใช้ความสามารถนี้ได้โดยคลิกขวา แล้วเลือก กำหนดค่าตัวเชื่อมต่อ>จุดสิ้นสุดของตัวเชื่อมต่อ
ซึ่งจะเปิดแผงด้านข้างซึ่งคุณสามารถระบุรายการที่เรียงลำดับของรูปแบบ URL อนุญาตหรือปฏิเสธ แถวสุดท้ายในรายการจะเป็นกฎสำหรับอักขระสัญลักษณ์ตัวแทน (*
) เสมอ ซึ่งใช้กับจุดสิ้นสุดทั้งหมดในตัวเชื่อมต่อนั้น โดยค่าเริ่มต้น รูปแบบ *
ถูกตั้งค่าเป็น อนุญาต สำหรับนโยบาย DLP ใหม่ แต่คุณสามารถแท็กสิ่งนี้เป็น อนุญาต หรือ ปฏิเสธ
เพิ่มกฎใหม่
คุณสามารถเพิ่มกฎใหม่ได้ โดยการเลือก เพิ่มจุดสิ้นสุด กฎใหม่จะถูกเพิ่มที่ส่วนท้ายของรายการรูปแบบ เป็นกฎที่สองจากสุดท้าย เนื่องจาก *
จะเป็นรายการสุดท้ายในรายการเสมอ อย่างไรก็ตาม คุณสามารถอัปเดตลำดับของรูปแบบได้ โดยใช้รายการแบบหล่นลง ลำดับ หรือเลือก เลื่อนขึ้น หรือ เลื่อนลง
หลังจากเพิ่มรูปแบบแล้ว คุณสามารถแก้ไขหรือลบรูปแบบเหล่านี้ได้ โดยการเลือกแถวที่ต้องการ แล้วเลือก ลบ
หลังจากบันทึกกฎการกรองจุดสิ้นสุดของตัวเชื่อมต่อและนโยบาย DLP ที่กำหนดไว้แล้ว กฎเหล่านั้นจะถูกบังคับใช้ทันทีในสภาพแวดล้อมเป้าหมาย ด้านล่างนี้คือตัวอย่างที่ผู้สร้างพยายามเชื่อมต่อโฟลว์ระบบคลาวด์กับจุดสิ้นสุด HTTP ที่ไม่ได้รับอนุญาต
ข้อจำกัดที่ทราบ
กฎการกรองจุดสิ้นสุดไม่ถูกบังคับใช้กับตัวแปรสภาพแวดล้อม อินพุตที่กำหนดเอง และจุดสิ้นสุดที่ผูกแบบไดนามิกระหว่างรันไทม์ มีการบังคับใช้เฉพาะจุดสิ้นสุดแบบคงที่ที่รู้จักและเลือกไว้เมื่อสร้างแอป โฟลว์ หรือแชทบอทระหว่างเวลาออกแบบ การดำเนินการนี้แสดงว่ากฎการกรองตำแหน่งข้อมูลตัวเชื่อมต่อสำหรับ SQL Server และ Azure Blob Storage จะไม่ถูกบังคับใช้หากการเชื่อมต่อได้รับการตรวจสอบความถูกต้องกับ Microsoft Entra ID ในภาพหน้าจอสองภาพด้านล่าง ผู้สร้างได้สร้างโฟลว์ระบบคลาวด์ที่กำหนด SQL Server และฐานข้อมูลภายในตัวแปร จากนั้นจึงใช้ตัวแปรเหล่านั้นเป็นอินพุตสำหรับข้อกำหนดการเชื่อมต่อ ดังนั้น กฎการกรองจุดสิ้นสุดจะไม่ได้รับการประเมิน และโฟลว์ระบบคลาวด์สามารถดำเนินการได้สำเร็จ
Power Apps บางส่วนที่เผยแพร่ก่อนวันที่ 1 ตุลาคม 2020 จำเป็นต้องเผยแพร่ใหม่ เพื่อให้กฎการดำเนินการของตัวเชื่อมต่อ DLP และกฎจุดสิ้นสุดถูกบังคับใช้ สคริปต์ต่อไปนี้ช่วยให้ผู้ดูแลระบบและผู้สร้างระบุแอปที่ต้องเผยแพร่ใหม่เพื่อให้เป็นไปตามกฎการควบคุมแบบละเอียดของ DLP ใหม่เหล่านี้:
Add-PowerAppsAccount $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z" ForEach ($app in Get-AdminPowerApp){ $versionAsDate = [datetime]::Parse($app.LastModifiedTime) $olderApp = $versionAsDate -lt $GranularDLPDate $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) If($($olderApp -and !$wasBackfilled)){ Write-Host "App must be republished to be Granular DLP compliant: " $app.AppName " " $app.Internal.properties.displayName " " $app.Internal.properties.owner.email } Else{ Write-Host "App is already Granular DLP compliant: " $app.AppName } }
รูปแบบการป้อนข้อมูลและตัวอย่างของจุดสิ้นสุด
ตัวเชื่อมต่อแต่ละตัวมีแนวคิดที่แตกต่างกันว่า จุดสิ้นสุด หมายถึงอะไร นอกจากนี้ จุดสิ้นสุดบางจุดสามารถกำหนดได้หลายรูปแบบ ดังนั้น จุดสิ้นสุดต้องถูกป้อนในรูปแบบที่เป็นไปได้ทั้งหมด เพื่อป้องกันไม่ให้ผู้สร้างใช้งานในขณะที่สร้างแอปและโฟลว์ ผู้ดูแลระบบสามารถป้อนชื่อเต็มของจุดสิ้นสุด หรือใช้รูปแบบการจับคู่กับอักขระสัญลักษณ์ตัวแทนเครื่องหมายดอกจัน (*
) เมื่อสร้างกฎการกรองปลายทาง กฎเหล่านี้ถูกป้อนและนำเสนอในรายการที่เรียงลำดับของรูปแบบของจุดสิ้นสุด ซึ่งหมายความว่ากฎเหล่านี้จะได้รับการประเมินในลำดับจากน้อยไปมาก โปรดทราบว่ากฎข้อสุดท้ายสำหรับตัวเชื่อมต่อที่กำหนดจะเป็น *
อนุญาตหรือ *
ปฏิเสธเสมอ อนุญาตเป็นค่าเริ่มต้น ซึ่งสามารถเปลี่ยนเป็นปฏิเสธได้
คำแนะนำต่อไปนี้อธิบายวิธีป้อนปลายทางของตัวเชื่อมต่อขณะสร้างกฎ เพื่ออนุญาตหรือปฏิเสธ
SQL Server
จุดสิ้นสุดการเชื่อมต่อเซิร์ฟเวอร์ SQL ต้องอยู่ใน รูปแบบ <Server_name, database_name>
บางสิ่งที่ต้องคำนึงถึง:
ผู้สร้างสามารถป้อนชื่อเซิร์ฟเวอร์ในรูปแบบต่างๆ ดังนั้น หากต้องการจัดการกับจุดสิ้นสุดอย่างแท้จริง จึงต้องป้อนรูปแบบที่เป็นไปได้ทั้งหมด ตัวอย่างเช่น อินสแตนซ์ในสถานที่ สามารถอยู่ในรูปแบบ
<machine_name\named_instance, database_name>
หรือ<IP address, custom port, database_name>
ในกรณีนี้ คุณจะต้องใช้กฎการอนุญาตหรือบล็อกในทั้งสองรูปแบบสำหรับจุดสิ้นสุด ตัวอย่างเช่น- บล็อก
WS12875676\Servername1,MktingDB
- บล็อก
11.22.33.444,1401,MktingDB
- บล็อก
ไม่มีตรรกะพิเศษในการจัดการที่อยู่ที่เกี่ยวข้อง เช่น
localhost
ดังนั้น หากคุณบล็อก*localhost*
จะบล็อกผู้สร้างจากการใช้จุดสิ้นสุดใดๆ โดยการใช้localhost
เป็นส่วนหนึ่งของจุดสิ้นสุดเซิร์ฟเวอร์ SQL อย่างไรก็ตาม จะไม่หยุดพวกเขาจากการเข้าถึงจุดสิ้นสุดโดยใช้ที่อยู่ที่แน่นอน เว้นแต่ว่าที่อยู่ที่แน่นอนจะถูกบล็อกโดยผู้ดูแลระบบ
ต่อไปนี้คือตัวอย่าง:
อนุญาตเฉพาะอินสแตนซ์ Azure SQL Server:
- อนุญาต
*.database.windows.net*
- ปฏิเสธ
*
- อนุญาต
อนุญาตเฉพาะช่วง IP เฉพาะ: (โปรดทราบว่าที่อยู่ IP ที่ไม่ได้รับอนุญาตยังสามารถป้อนได้โดยผู้สร้างในรูปแบบ
<machine_name\named_instance>
)- อนุญาต
11.22.33*
- ปฏิเสธ
*
- อนุญาต
Dataverse
Dataverse จุดสิ้นสุดจะแสดงโดย ID องค์กร เช่น 00aa00aa-bb11-cc22-dd33-44ee44ee44ee โปรดทราบว่าเฉพาะตัวเชื่อมต่อ Dataverse ปกติที่อยู่ในขอบเขตสำหรับการกรองปลายทางในขณะนี้ Dataverse ไดนามิก และ Dataverse ตัวเชื่อมต่อปัจจุบัน ไม่อยู่ในขอบเขต นอกจากนี้ อินสแตนซ์ในพื้นที่ของ Dataverse (เรียกอีกอย่างว่าสภาพแวดล้อมปัจจุบัน) ไม่สามารถบล็อกเพื่อใช้งานภายในสภาพแวดล้อมได้ ซึ่งหมายความว่าภายในสภาพแวดล้อมที่กำหนด ผู้สร้างสามารถเข้าถึง Dataverse สภาพแวดล้อมปัจจุบันได้ตลอดเวลา
ดังนั้น กฎที่กล่าวต่อไปนี้:
- อนุญาต
00aa00aa-bb11-cc22-dd33-44ee44ee44ee
- ปฏิเสธ
*
จริงๆ แล้วหมายถึง:
- อนุญาต
Dataverse current environment
- อนุญาต
00aa00aa-bb11-cc22-dd33-44ee44ee44ee
- ปฏิเสธ
*
อนุญาต Dataverse current environment
เป็นกฎข้อแรกโดยนัย ในรายการ Dataverse การกรองปลายทาง เสมอ สำหรับสภาพแวดล้อมที่กำหนด
ที่เก็บข้อมูล Azure Blob
จุดสิ้นสุด Azure Blob Storage จะแสดงด้วยชื่อบัญชีที่เก็บข้อมูล Azure
SMTP
จุดสิ้นสุด SMTP แสดงในรูปแบบ <SMTP server address, port number>
ต่อไปนี้เป็นสถานการณ์ตัวอย่าง:
- ปฏิเสธ
smtp.gmail.com,587
- อนุญาต
*
HTTP ที่มี Microsoft Entra ID, HTTP Webhook และตัวเชื่อมต่อ HTTP
จุดสิ้นสุดสำหรับตัวเชื่อมต่อ HTTP ทั้งหมด จะแสดงด้วยรูปแบบ URL การดำเนินการ รับทรัพยากรบนเว็บ ของ HTTP ที่มี Microsoft Entra ตัวเชื่อมต่อ อยู่นอกขอบเขต
ต่อไปนี้เป็นสถานการณ์ตัวอย่าง:
อนุญาตการเข้าถึงเฉพาะหน้าการสมัครใช้งาน Azure ภายใน https://management.azure.com/
เท่านั้น
- อนุญาต
https://management.azure.com/subscriptions*
- ปฏิเสธ
https://management.azure.com/*
- ปฏิเสธ
*
การสนับสนุน PowerShell สำหรับการกรองของปลายทาง
กำหนดค่ากฎการกรองปลายทางสำหรับนโยบาย
ออบเจ็กต์ที่มีกฎการกรองปลายทางสำหรับนโยบาย จะอ้างถึงด้านล่างเป็นการกำหนดค่าตัวเชื่อมต่อ
ออบเจ็กต์การกำหนดค่าตัวเชื่อมต่อมีโครงสร้างดังต่อไปนี้:
$ConnectorConfigurations = @{
connectorActionConfigurations = @() # used for connector action rules
endpointConfigurations = @( # array – one entry per
@{
connectorId # string
endpointRules = @( # array – one entry per rule
@{
order # number
endpoint # string
behavior # supported values: Allow/Deny
}
)
}
)
}
บันทึกย่อ
- กฎสุดท้ายสำหรับแต่ละตัวเชื่อมต่อควรถูกนําไปใช้กับ URL
*
เสมอ เพื่อให้แน่ใจว่า URL นั้นถูกครอบคลุมด้วยกฎทั้งหมด - คุณสมบัติลำดับของกฎสำหรับตัวเชื่อมต่อแต่ละตัวควรเติมด้วยตัวเลข 1 ถึง N โดยที่ N คือจำนวนของกฎสำหรับตัวเชื่อมต่อนั้น
ดึงข้อมูลการกำหนดค่าตัวเชื่อมต่อที่มีอยู่สำหรับนโยบาย DLP
Get-PowerAppDlpPolicyConnectorConfigurations
สร้างการกำหนดค่าตัวเชื่อมต่อสำหรับนโยบาย DLP
New-PowerAppDlpPolicyConnectorConfigurations
อัปเดตการกำหนดค่าตัวเชื่อมต่อสำหรับนโยบาย DLP
Set-PowerAppDlpPolicyConnectorConfigurations
ตัวอย่างเช่น
เป้าหมาย:
สำหรับตัวเชื่อมต่อเซิร์ฟเวอร์ SQL:
- ปฏิเสธฐานข้อมูล “testdatabase” ของเซิร์ฟเวอร์ "myservername.database.windows.net"
- อนุญาตฐานข้อมูลอื่นทั้งหมดของเซิร์ฟเวอร์ "myservername.database.windows.net"
- ปฏิเสธเซิร์ฟเวอร์อื่นทั้งหมด
สำหรับตัวเชื่อมต่อ SMTP:
- อนุญาต Gmail (ที่อยู่เซิร์ฟเวอร์: smtp.gmail.com พอร์ต: 587)
- ปฏิเสธที่อยู่อื่นทั้งหมด
สำหรับตัวเชื่อมต่อ HTTP:
- อนุญาตจุดสิ้นสุด
https://mywebsite.com/allowedPath1
และhttps://mywebsite.com/allowedPath2
- ปฏิเสธ URL อื่นทั้งหมด
หมายเหตุ
ใน cmdlet ต่อไปนี้ PolicyName หมายถึง GUID ที่ไม่ซ้ำกัน คุณสามารถดึงข้อมูล DLP GUID ได้โดยการเรียกใช้ cmdlet ของ Get-DlpPolicy
$ConnectorConfigurations = @{
endpointConfigurations = @(
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql"
endpointRules = @(
@{
order = 1
endpoint = "myservername.database.windows.net,testdatabase"
behavior = "Deny"
},
@{
order = 2
endpoint = "myservername.database.windows.net,*"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp"
endpointRules = @(
@{
order = 1
endpoint = "smtp.gmail.com,587"
behavior = "Allow"
},
@{
order = 2
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "http"
endpointRules = @(
@{
order = 1
endpoint = "https://mywebsite.com/allowedPath1"
behavior = "Allow"
},
@{
order = 2
endpoint = "https://mywebsite.com/allowedPath2"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
}
)
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations