AWS AmazonS3 documentation change
Summary
Corrected formulas for multiple S3 Storage Lens metrics including encryption percentages, replication calculations, error rates, and transfer metrics. Improved accuracy by accounting for delete markers in encryption calculations and using consistent metric names.
Security assessment
Changes improve accuracy of security-related metrics (encryption percentages, replication rules, Object Lock) but don't address a specific vulnerability. Updates enhance documentation of existing security features by providing correct formulas for monitoring data protection controls.
Diff
diff --git a/AmazonS3/latest/userguide/storage_lens_metrics_glossary.md b/AmazonS3/latest/userguide/storage_lens_metrics_glossary.md index ad30335a5..ecd5ab573 100644 --- a//AmazonS3/latest/userguide/storage_lens_metrics_glossary.md +++ b//AmazonS3/latest/userguide/storage_lens_metrics_glossary.md @@ -85 +85 @@ Average expiration lifecycle rules per bucket | - | Average number of lifecycle -Noncurrent version transition lifecycle rule count | NoncurrentVersionTransitionLifecycleRuleCount | Number of lifecycle rules to transition noncurrent object versions to another storage class | Advanced | Cost optimization | N | | N +Noncurrent version transition lifecycle rule count | NoncurrentVersionTransitionLifecycleRuleCount | Number of lifecycle rules to transition noncurrent object versions to another storage class | Advanced | Cost optimization | N | - | N @@ -96 +96 @@ Encrypted bytes | EncryptedStorageBytes | Number of encrypted bytes | Free | Dat -% encrypted bytes | - | Percentage of total bytes that are encrypted | Free | Data protection | Y | sum(EncryptedObjectCount)/sum(StorageBytes) | Y +% encrypted bytes | - | Percentage of total bytes that are encrypted | Free | Data protection | Y | sum(EncryptedStorageBytes)/(sum(StorageBytes) - sum(DeleteMarkerStorageBytes)) | Y @@ -98,5 +98,5 @@ Encrypted object count | EncryptedObjectCount | Number of objects that are encry -% encrypted objects | - | Percentage of objects that are encrypted | Free | Data protection | Y | sum(EncryptedStorageBytes)/sum(ObjectCount) | Y -Unencrypted bytes | UnencryptedStorageBytes | Number of bytes that are unencrypted | Free | Data protection | Y | sum(StorageBytes) - sum(EncryptedStorageBytes) | Y -% unencrypted bytes | - | Percentage of bytes that are unencrypted | Free | Data protection | Y | sum(UnencryptedStorageBytes)/sum(StorageBytes) | Y -Unencrypted object count | UnencryptedObjectCount | Number of objects that are unencrypted | Free | Data protection | Y | sum(ObjectCount) - sum(EncryptedObjectCount) | Y -% unencrypted objects | - | Percentage of unencrypted objects | Free | Data protection | Y | sum(UnencryptedObjectCount)/sum(ObjectCount) | Y +% encrypted objects | - | Percentage of objects that are encrypted | Free | Data protection | Y | sum(EncryptedObjectCount)/(sum(ObjectCount) - sum(DeleteMarkerObjectCount)) | Y +Unencrypted bytes | - | Number of bytes that are unencrypted | Free | Data protection | Y | sum(StorageBytes) - sum(DeleteMarkerStorageBytes) - sum(EncryptedStorageBytes) | Y +% unencrypted bytes | - | Percentage of bytes that are unencrypted | Free | Data protection | Y | sum(UnencryptedStorageBytes)/(sum(StorageBytes) - sum(DeleteMarkerStorageBytes)) | Y +Unencrypted object count | - | Number of objects that are unencrypted | Free | Data protection | Y | sum(ObjectCount) - sum(DeleteMarkerObjectCount) - sum(EncryptedObjectCount) | Y +% unencrypted objects | - | Percentage of unencrypted objects | Free | Data protection | Y | sum(UnencryptedObjectCount)/(sum(ObjectCount) - sum(DeleteMarkerObjectCount)) | Y @@ -106 +106 @@ Replicated object count source | ReplicatedObjectCountSource | Number of replica -% replicated objects source | - | Percentage of total objects that are replicated from the source bucket | Free | Data protection | Y | sum(ReplicatedStorageObjectCount)/sum(ObjectCount) | Y +% replicated objects source | - | Percentage of total objects that are replicated from the source bucket | Free | Data protection | Y | sum(ReplicatedObjectCountSource)/sum(ObjectCount) | Y @@ -111 +111 @@ Replicated object count destination | ReplicatedObjectCount | Number of objects -Object Lock bytes | ObjectLockEnabledStorageBytes | Number of Object Lock enabled storage bytes | Free | Data protection | N | sum(UnencryptedStorageBytes)/sum(ObjectLockEnabledStorageCount)-sum(ObjectLockEnabledStorageBytes) | Y +Object Lock bytes | ObjectLockEnabledStorageBytes | Number of Object Lock enabled storage bytes | Free | Data protection | N | - | Y @@ -136,3 +136,3 @@ Invalid destination replication rule count | InvalidDestinationReplicationRuleCo -Average invalid destination replication rules per bucket | - | Average number of replication rules with a replication destination that's not valid | Advanced | Data protection | Y | sum(InvalidReplicationRuleCount)/sum(DistinctNumberOfBuckets) | N -Total replication rule count | - | Total replication rule count | Advanced | Data protection | Y | - | N -Average replication rule count per bucket | - | Average total replication rule count | Advanced | Data protection | Y | sum(all replication rule count metrics)/sum(DistinctNumberOfBuckets) | N +Average invalid destination replication rules per bucket | - | Average number of replication rules with a replication destination that's not valid | Advanced | Data protection | Y | sum(InvalidDestinationReplicationRuleCount)/sum(DistinctNumberOfBuckets) | N +Total replication rule count | - | Total replication rule count | Advanced | Data protection | Y | sum(InvalidDestinationReplicationRuleCount) + sum(CrossAccountReplicationRuleCount) + sum(SameAccountReplicationRuleCount) | N +Average replication rule count per bucket | - | Average total replication rule count | Advanced | Data protection | Y | (sum(InvalidDestinationReplicationRuleCount) + sum(CrossAccountReplicationRuleCount) + sum(SameAccountReplicationRuleCount))/sum(DistinctNumberOfBuckets) | N @@ -147 +147 @@ Transfer Acceleration enabled bucket count | TransferAccelerationEnabledBucketCo -Event Notification enabled bucket count | EventNotificationEnabledBucketCount | Number of buckets that have Event Notifications enabled | Free | Events | N | | N +Event Notification enabled bucket count | EventNotificationEnabledBucketCount | Number of buckets that have Event Notifications enabled | Free | Events | N | - | N @@ -166 +166 @@ Total errors | - | The sum of all 4xx and 5xx errors | Advanced | Activity | Y | -% error rate | - | Total number of 4xx and 5xx errors as a percentage of total requests | Advanced | Activity | Y | sum(TotalErrors)/sum(TotalRequests) | N +% error rate | - | Total number of 4xx and 5xx errors as a percentage of total requests | Advanced | Activity | Y | sum(TotalErrors)/sum(AllRequests) | N @@ -247 +247 @@ Concurrent Put 503 error count | ConcurrentPut503ErrorCount | Number of 503 erro -% Concurrent Put 503 errors | - | Percentage of 503 errors that are generated due to concurrent writes to the same object | Advanced | Performance | Y | 100 * ConcurrentPut503Errors / AllRequests | N +% Concurrent Put 503 errors | - | Percentage of 503 errors that are generated due to concurrent writes to the same object | Advanced | Performance | Y | 100 * ConcurrentPut503ErrorCount / AllRequests | N @@ -251 +251 @@ Cross-Region transferred bytes | CrossRegionTransferredBytes | Number of bytes t -% Cross-Region transferred bytes | - | Percentage of bytes transferred that originate from calls in different Region that bucket's home Region | Advanced | Performance | Y | 100 * CrossRegionBytes / (BytesDownloaded + BytesUploaded) | N +% Cross-Region transferred bytes | - | Percentage of bytes transferred that originate from calls in different Region than bucket's home Region | Advanced | Performance | Y | 100 * CrossRegionTransferredBytes / (BytesDownloaded + BytesUploaded) | N @@ -253 +253 @@ Cross-Region without replication request count | CrossRegionWithoutReplicationRe -% Cross-Region without replication requests | - | Percentage of requests that originate from a client in different Region that bucket's home Region, excluding cross-region replication requests | Advanced | Performance | Y | 100 * CrossRegionRequestWithoutReplicationCount / AllRequests | N +% Cross-Region without replication requests | - | Percentage of requests that originate from a client in different Region than bucket's home Region, excluding cross-region replication requests | Advanced | Performance | Y | 100 * CrossRegionWithoutReplicationRequestCount / AllRequests | N @@ -255 +255 @@ Cross-Region without replication transferred bytes | CrossRegionWithoutReplicati -% Cross-Region without replication transferred bytes | - | Number of requests that originate from a Region other than the bucket's home Region, excluding cross-region replication requests | Advanced | Performance | Y | 100 * CrossRegionBytesWithoutReplication / (BytesDownloaded + BytesUploaded) | N +% Cross-Region without replication transferred bytes | - | Percentage of bytes transferred that originate from calls in different Region than bucket's home Region, excluding cross-region replication bytes | Advanced | Performance | Y | 100 * CrossRegionWithoutReplicationTransferredBytes / (BytesDownloaded + BytesUploaded) | N @@ -259 +259 @@ In-Region transferred bytes | InRegionTransferredBytes | Number of bytes that ar -% In-Region transferred bytes | - | Percentage of bytes transferred that originate from calls from same Region as bucket's home Region | Advanced | Performance | Y | 100 * InRegionBytes / (BytesDownloaded + BytesUploaded) | N +% In-Region transferred bytes | - | Percentage of bytes transferred that originate from calls from same Region as bucket's home Region | Advanced | Performance | Y | 100 * InRegionTransferredBytes / (BytesDownloaded + BytesUploaded) | N