使用 Amazon Macie 篩選 S3 儲存貯體庫存 - Amazon Macie

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Macie 篩選 S3 儲存貯體庫存

若要識別並專注於具有特定特性的儲存貯體,您可以在 Amazon Macie 主控台上篩選 S3 儲存貯體庫存,以及使用 Amazon Macie 以程式設計方式提交的查詢中篩選 S3 儲存貯體庫存。API建立篩選器時,您可以使用特定的值區屬性來定義條件,以便在檢視表或查詢結果中包含或排除值區。值區屬性是儲存貯體特定中繼資料的欄位。

在 Macie 中,過濾器由一個或多個條件組成。每個條件 (也稱為準則) 由三部分組成:

  • 以屬性為基礎的欄位,例如「值區名稱」、「標籤索引鍵」或「在工作中定義」。

  • 運算子,例如等於不等於

  • 一個或多個值。值的類型和數目取決於您選擇的欄位和運算子。

如何定義和套用篩選條件取決於您使用 Amazon Macie 主控台還是 Amazon Mac API ie。

在 Amazon Macie 控制台上過濾庫存

如果您使用 Amazon Macie 主控台篩選 S3 儲存貯體庫存,Macie 會提供選項來協助您針對個別條件選擇欄位、操作員和值。您可以使用 S3 儲存貯體頁面上的篩選方塊存取這些選項,如下圖所示。

S3 儲存貯體頁面上的篩選方塊。

當您將游標置於篩選方塊中時,Macie 會顯示您可以在篩選條件中使用的欄位清單。這些欄位依邏輯類別組織。例如,「一般欄位」 類別包含儲存 S3 儲存貯體一般資訊的欄位。公開存取類別包含欄位,這些欄位會儲存可套用至值區之各種公用存取設定類型的相關資料。欄位會在每個類別中按字母順序排序。

若要新增條件,請先從清單中選擇欄位。若要尋找欄位,請瀏覽完整清單,或輸入部分欄位名稱以縮小欄位清單。

根據您選擇的欄位,Macie 會顯示不同的選項。這些選項會反映您所選欄位的類型和性質。例如,如果您選擇「共用存取」欄位,Macie 會顯示可供選擇的值清單。如果您選擇「儲存貯體名稱」欄位,Macie 會顯示一個文字方塊,您可以在其中輸入 S3 儲存貯體的名稱。無論您選擇哪個欄位,Macie 都會引導您完成以下步驟,以新增條件,其中包含欄位的必要設定。

在您新增條件之後,Macie 會套用條件的條件,並在篩選方塊下方的篩選條件 Token 中顯示條件,如下圖所示。

具有條件之篩選器權杖的篩選方塊。

在此範例中,條件設定為包含可公開存取的所有值區,並排除所有其他值區。它返回桶,其中有效權限字段的值等於公共

當您新增更多條件時,Macie 會套用其準則,並將其顯示在篩選方塊下方。如果您新增多個條件,Macie 會使用AND邏輯來連接條件並評估篩選準則。這表示 S3 儲存貯體只有在符合篩選條件中的所有條件時才符合篩選條件。您可以隨時參考篩選方塊下方的區域,以決定您套用的條件。

使用主控台篩選庫存
  1. https://console.aws.amazon.com/macie/打開 Amazon Macie 控制台。

  2. 在導覽窗格中,選擇 S3 儲存貯體S3 儲存貯體頁面會顯示儲存貯體庫存。

    如果啟用了自動化敏感資料探索,預設檢視不會顯示目前從自動探索中排除的值區的資料。如果您是組織的 Macie 管理員,它也不會顯示目前已停用自動探索功能的帳戶資料。若要顯示此資料,請在篩選器方塊下方的 [由自動探索篩選器權杖監視] 中選擇 [X]。

  3. 在頁面頂端,選擇性地選擇重新整理 ( The refresh button, which is a button that displays an empty, dark gray circle with an arrow. ) 以從 Amazon S3 擷取最新的儲存貯體中繼資料。

  4. 將游標置於篩選方塊中,然後選擇要用於條件的欄位。

  5. 為欄位選擇或輸入適當的值類型,並牢記下列秘訣。

    日期、時間和時間範圍

    對於日期和時間,請使用「」(From) 和「」(To) 方塊定義包含的時間範圍:

    • 若要定義固定時間範圍,請使用「」(From) 和「」(To) 方塊,分別指定範圍中的第一個日期和時間,以及最後一個日期和時間。

    • 若要定義特定日期和時間開始並在目前時間結束的相對時間範圍,請在「從」(From) 方塊中輸入開始日期和時間,並刪除「」(To) 方塊中的任何文字。

    • 若要定義在特定日期和時間結束的相對時間範圍,請在 [收件者] 方塊中輸入結束日期和時間,並刪除 [] 方塊中的任何文字。

    請注意,時間值使用 24 小時標記法。如果您使用日期選擇器來選擇日期,您可以直接在「從」(From) 和「」(To) 方塊輸入文字來精簡值。

    數字和數值範圍

    對於數值,請使用「」(From) 和「」(To) 方塊來輸入定義包含數值範圍的整數:

    • 若要定義固定的數值範圍,請使用「」(From) 和「到」(To) 方塊,分別指定範圍中的最小和最高數字。

    • 若要定義僅限於一個特定值的固定數值範圍,請在「」(From) 和「」(To) 方塊中輸入值。例如,若只要包含剛好存放 15 個物件的 S3 儲存貯體,請15在 [] 和 [] 方塊中輸入。

    • 若要定義特定數字開始的相對數值範圍,請在「從」(From) 方塊中輸入數字,並且不要在「」方塊中輸入任何文字。

    • 若要定義結束於特定數字的相對數值範圍,請在「」方塊中輸入數字,並且不要在「」方塊中輸入任何文字。

    文字 (字串) 值

    對於此類型的值,請為欄位輸入完整、有效的值。值是區分大小寫的。

    請注意,您不能在這種類型的值中使用部分值或萬用字元。唯一的例外是「值區名稱」欄位。對於該欄位,您可以指定前置字元,而不是完整的值區名稱。例如,若要尋找名稱以 My-S3 開頭的所有 S3 儲存貯體,請輸入儲my-S3貯體名稱欄位的篩選器值。如果您輸入任何其他值,例如My-s3my*,Macie 將不會傳回值區。

  6. 為欄位新增值後,請選擇「套用」。Macie 會套用篩選條件,並在篩選器方塊下方的篩選器 Token 中顯示條件。

  7. 針對您要新增的每個其他條件重複步驟 4 到 6。

  8. 若要移除條件,請在條件的篩選器 Token 中選擇 X

  9. 若要變更條件,請在條件的篩選器 Token 中選擇 X 來移除條件。然後重複步驟 4 到 6,以使用正確的設定新增條件。

使用 Amazon Macie 以編程方式過濾庫存 API

若要以程式設計方式篩選 S3 儲存貯體庫存,請在使用 Amazon Macie DescribeBucketsAPI操作提交的查詢中指定篩選條件。此操作返回對象的數組。每個物件都包含符合篩選準則之值區的統計資料和其他資訊。

若要在查詢中指定篩選條件,請在請求中包含篩選條件對映。對於每個條件,請為欄位指定欄位、運算子以及一或多個值。值的類型和數目取決於您選擇的欄位和運算子。如需可在條件中使用的欄位、運算子和值類型的相關資訊,請參閱 Amazon Macie API 參考資料中的 Amazon S3 資料來源

下列範例說明如何在使用 AWS Command Line Interface (AWS CLI) 提交的查詢中指定篩選條件。您也可以使用目前版本的其他 AWS 命令列工具或 AWS SDK,或直接傳送HTTPS要求至 Macie 來執行此操作。如需有關 AWS 工具的資訊SDKs,請參閱建置於其上的工具 AWS

這些示例使用描述桶命令。如果範例成功執行,Macie 會傳回buckets陣列。陣列會針對目前儲存貯體中的每個值區包含一個物件, AWS 區域 且符合篩選準則。如需此輸出的範例,請展開下一節。

在此範例中,buckets陣列提供兩個值區的詳細資訊,這兩個值區符合查詢中指定的篩選準則。

{ "buckets": [ { "accountId": "123456789012", "allowsUnencryptedObjectUploads": "FALSE", "automatedDiscoveryMonitoringStatus": "MONITORED", "bucketArn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "bucketCreatedAt": "2020-05-18T19:54:00+00:00", "bucketName": "DOC-EXAMPLE-BUCKET1", "classifiableObjectCount": 13, "classifiableSizeInBytes": 1592088, "jobDetails": { "isDefinedInJob": "TRUE", "isMonitoredByJob": "TRUE", "lastJobId": "08c81dc4a2f3377fae45c9ddaexample", "lastJobRunTime": "2024-05-26T14:55:30.270000+00:00" }, "lastAutomatedDiscoveryTime": "2024-06-07T19:11:25.364000+00:00", "lastUpdated": "2024-06-12T07:33:06.337000+00:00", "objectCount": 13, "objectCountByEncryptionType": { "customerManaged": 0, "kmsManaged": 2, "s3Managed": 7, "unencrypted": 4, "unknown": 0 }, "publicAccess": { "effectivePermission": "NOT_PUBLIC", "permissionConfiguration": { "accountLevelPermissions": { "blockPublicAccess": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true } }, "bucketLevelPermissions": { "accessControlList": { "allowsPublicReadAccess": false, "allowsPublicWriteAccess": false }, "blockPublicAccess": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true }, "bucketPolicy": { "allowsPublicReadAccess": false, "allowsPublicWriteAccess": false } } } }, "region": "us-east-1", "replicationDetails": { "replicated": false, "replicatedExternally": false, "replicationAccounts": [] }, "sensitivityScore": 78, "serverSideEncryption": { "kmsMasterKeyId": null, "type": "NONE" }, "sharedAccess": "NOT_SHARED", "sizeInBytes": 4549746, "sizeInBytesCompressed": 0, "tags": [ { "key": "Division", "value": "HR" }, { "key": "Team", "value": "Recruiting" } ], "unclassifiableObjectCount": { "fileType": 0, "storageClass": 0, "total": 0 }, "unclassifiableObjectSizeInBytes": { "fileType": 0, "storageClass": 0, "total": 0 }, "versioning": true }, { "accountId": "123456789012", "allowsUnencryptedObjectUploads": "TRUE", "automatedDiscoveryMonitoringStatus": "MONITORED", "bucketArn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET2", "bucketCreatedAt": "2020-11-25T18:24:38+00:00", "bucketName": "DOC-EXAMPLE-BUCKET2", "classifiableObjectCount": 8, "classifiableSizeInBytes": 133810, "jobDetails": { "isDefinedInJob": "TRUE", "isMonitoredByJob": "FALSE", "lastJobId": "188d4f6044d621771ef7d65f2example", "lastJobRunTime": "2024-04-09T19:37:11.511000+00:00" }, "lastAutomatedDiscoveryTime": "2024-06-07T19:11:25.364000+00:00", "lastUpdated": "2024-06-12T07:33:06.337000+00:00", "objectCount": 8, "objectCountByEncryptionType": { "customerManaged": 0, "kmsManaged": 0, "s3Managed": 8, "unencrypted": 0, "unknown": 0 }, "publicAccess": { "effectivePermission": "NOT_PUBLIC", "permissionConfiguration": { "accountLevelPermissions": { "blockPublicAccess": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true } }, "bucketLevelPermissions": { "accessControlList": { "allowsPublicReadAccess": false, "allowsPublicWriteAccess": false }, "blockPublicAccess": { "blockPublicAcls": true, "blockPublicPolicy": true, "ignorePublicAcls": true, "restrictPublicBuckets": true }, "bucketPolicy": { "allowsPublicReadAccess": false, "allowsPublicWriteAccess": false } } } }, "region": "us-east-1", "replicationDetails": { "replicated": false, "replicatedExternally": false, "replicationAccounts": [] }, "sensitivityScore": 95, "serverSideEncryption": { "kmsMasterKeyId": null, "type": "AES256" }, "sharedAccess": "EXTERNAL", "sizeInBytes": 175978, "sizeInBytesCompressed": 0, "tags": [ { "key": "Division", "value": "HR" }, { "key": "Team", "value": "Recruiting" } ], "unclassifiableObjectCount": { "fileType": 3, "storageClass": 0, "total": 3 }, "unclassifiableObjectSizeInBytes": { "fileType": 2999826, "storageClass": 0, "total": 2999826 }, "versioning": true } ] }

如果沒有值區符合篩選條件,Macie 會傳回空buckets陣列。

{ "buckets": [] }

範例 1:依時段名稱搜尋時段

此範例使用 describe- bucket 命令來查詢名稱以 My-S3 開頭且位於目前值區的所有值區的中繼資料。 AWS 區域

若為 Linux、macOS 或 Unix:

$ aws macie2 describe-buckets --criteria '{"bucketName":{"prefix":"my-S3"}}'

對於 Microsoft 視窗:

C:\> aws macie2 describe-buckets --criteria={\"bucketName\":{\"prefix\":\"my-S3\"}}

其中:

  • bucketName 指定「值區JSON名稱」欄位的名稱

  • prefix 指定前運算符。

  • my-S3 是「值區名稱」欄位的值。

範例 2:尋找可公開存取的值區

此範例使用 describe- bucket 命令來查詢目前儲存貯體的中繼資料, AWS 區域 並且根據權限設定的組合,可公開存取。

若為 Linux、macOS 或 Unix:

$ aws macie2 describe-buckets --criteria '{"publicAccess.effectivePermission":{"eq":["PUBLIC"]}}'

對於 Microsoft 視窗:

C:\> aws macie2 describe-buckets --criteria={\"publicAccess.effectivePermission\":{\"eq\":[\"PUBLIC\"]}}

其中:

  • publicAccess.effectivePermission 指定 [有效權限] 欄位的JSON名稱。

  • eq 指定於運算子。

  • PUBLIC 是 [有效] 權限欄位的列舉值。

範例 3:尋找儲存未加密物件的值區

此範例使用 describe- bucket 命令來查詢目前儲存貯體的中繼資料, AWS 區域 並儲存未加密物件。

若為 Linux、macOS 或 Unix:

$ aws macie2 describe-buckets --criteria '{"objectCountByEncryptionType.unencrypted":{"gte":1}}'

對於 Microsoft 視窗:

C:\> aws macie2 describe-buckets --criteria={\"objectCountByEncryptionType.unencrypted\":{\"gte\":1}}

其中:

  • objectCountByEncryptionType.unencrypted 指定「無加密」欄位的JSON名稱。

  • gte 指定大於或等於運算子。

  • 1 是「無加密」欄位中包含相對數值範圍內的最低值。

範例 4:尋找未受工作監控的值區

此範例會使用 describe-bucket 命令,查詢目前儲存貯體的中繼資料, AWS 區域 而這些值區與任何週期性敏感資料探索工作都沒有關聯。

若為 Linux、macOS 或 Unix:

$ aws macie2 describe-buckets --criteria '{"jobDetails.isMonitoredByJob":{"eq":["FALSE"]}}'

對於 Microsoft 視窗:

C:\> aws macie2 describe-buckets --criteria={\"jobDetails.isMonitoredByJob\":{\"eq\":[\"FALSE\"]}}

其中:

  • jobDetails.isMonitoredByJob 指定「由工作主動監督」欄位的JSON名稱。

  • eq 指定於運算子。

  • FALSE 是「依工作主動監督」欄位的列舉值。

範例 5:搜尋將資料複製到外部帳戶的值區

此範例使用 describe- bucket 命令來查詢目前值區中的中繼資料, AWS 區域 並設定為將物件複製到不屬於您組織 AWS 帳戶 的值區。

若為 Linux、macOS 或 Unix:

$ aws macie2 describe-buckets --criteria '{"replicationDetails.replicatedExternally":{"eq":["true"]}}'

對於 Microsoft 視窗:

C:\> aws macie2 describe-buckets --criteria={\"replicationDetails.replicatedExternally\":{\"eq\":[\"true\"]}}

其中:

  • replicationDetails.replicatedExternally 指定「外部複製」欄位的JSON名稱。

  • eq 指定於運算子。

  • true 指定「外部複製」欄位的布林值。

範例 6:根據多重條件搜尋時段

此範例使用 describe-bucket 命令來查詢目前值區中 AWS 區域 且符合下列準則的中繼資料:根據權限設定的組合可公開存取;儲存未加密的物件;而且不會與任何定期性敏感資料探索工作相關聯。

對於 Linux、macOS 或 Unix,請使用反斜線 (\) 行接續字元來提高可讀性:

$ aws macie2 describe-buckets \ --criteria '{"publicAccess.effectivePermission":{"eq":["PUBLIC"]},"objectCountByEncryptionType.unencrypted":{"gte":1},"jobDetails.isMonitoredByJob":{"eq":["FALSE"]}}'

對於 Microsoft Windows,使用脫字符號(^)行繼續字符來提高可讀性:

C:\> aws macie2 describe-buckets ^ --criteria={\"publicAccess.effectivePermission\":{\"eq\":[\"PUBLIC\"]},\"objectCountByEncryptionType.unencrypted\":{\"gte\":1},\"jobDetails.isMonitoredByJob\":{\"eq\":[\"FALSE\"]}}

其中:

  • publicAccess.effectivePermission 指定 [有效權限] 欄位的JSON名稱,以及:

    • eq 指定於運算子。

    • PUBLIC 是 [有效] 權限欄位的列舉值。

  • objectCountByEncryptionType.unencrypted 指定「無加密」欄位的JSON名稱,並且:

    • gte 指定大於或等於運算子。

    • 1 是「無加密」欄位中包含相對數值範圍內的最低值。

  • jobDetails.isMonitoredByJob 指定「由工作主動監督」欄位的JSON名稱,以及:

    • eq 指定於運算子。

    • FALSE 是「依工作主動監督」欄位的列舉值。