Skip to content

Commit 1274899

Browse files
author
AWS
committed
Access Analyzer Update: We are launching a new analyzer type, internal access analyzer. The new analyzer will generate internal access findings, which help customers understand who within their AWS organization or AWS Account has access to their critical AWS resources.
1 parent 0edc0cd commit 1274899

File tree

2 files changed

+191
-9
lines changed

2 files changed

+191
-9
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Access Analyzer",
4+
"contributor": "",
5+
"description": "We are launching a new analyzer type, internal access analyzer. The new analyzer will generate internal access findings, which help customers understand who within their AWS organization or AWS Account has access to their critical AWS resources."
6+
}

services/accessanalyzer/src/main/resources/codegen-resources/service-2.json

Lines changed: 185 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,6 +1125,10 @@
11251125
"unusedAccess":{
11261126
"shape":"UnusedAccessConfiguration",
11271127
"documentation":"<p>Specifies the configuration of an unused access analyzer for an Amazon Web Services organization or account.</p>"
1128+
},
1129+
"internalAccess":{
1130+
"shape":"InternalAccessConfiguration",
1131+
"documentation":"<p>Specifies the configuration of an internal access analyzer for an Amazon Web Services organization or account. This configuration determines how the analyzer evaluates access within your Amazon Web Services environment.</p>"
11281132
}
11291133
},
11301134
"documentation":"<p>Contains information about the configuration of an analyzer for an Amazon Web Services organization or account.</p>",
@@ -1187,7 +1191,7 @@
11871191
},
11881192
"configuration":{
11891193
"shape":"AnalyzerConfiguration",
1190-
"documentation":"<p>Specifies whether the analyzer is an external access or unused access analyzer.</p>"
1194+
"documentation":"<p>Specifies if the analyzer is an external access, unused access, or internal access analyzer.</p>"
11911195
}
11921196
},
11931197
"documentation":"<p>Contains information about the analyzer.</p>"
@@ -1609,7 +1613,7 @@
16091613
},
16101614
"type":{
16111615
"shape":"Type",
1612-
"documentation":"<p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>"
1616+
"documentation":"<p>The type of analyzer to create. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>"
16131617
},
16141618
"archiveRules":{
16151619
"shape":"InlineArchiveRulesList",
@@ -1626,7 +1630,7 @@
16261630
},
16271631
"configuration":{
16281632
"shape":"AnalyzerConfiguration",
1629-
"documentation":"<p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>"
1633+
"documentation":"<p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration. If the analyzer is an internal access analyzer, the specified internal access analysis rules are used for the configuration.</p>"
16301634
}
16311635
},
16321636
"documentation":"<p>Creates an analyzer.</p>"
@@ -1841,7 +1845,7 @@
18411845
},
18421846
"resourceControlPolicyRestriction":{
18431847
"shape":"ResourceControlPolicyRestriction",
1844-
"documentation":"<p>The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).</p>"
1848+
"documentation":"<p>The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).</p> <ul> <li> <p> <code>APPLICABLE</code>: There is an RCP present in the organization but IAM Access Analyzer does not include it in the evaluation of effective permissions. For example, if <code>s3:DeleteObject</code> is blocked by the RCP and the restriction is <code>APPLICABLE</code>, then <code>s3:DeleteObject</code> would still be included in the list of actions for the finding.</p> </li> <li> <p> <code>FAILED_TO_EVALUATE_RCP</code>: There was an error evaluating the RCP.</p> </li> <li> <p> <code>NOT_APPLICABLE</code>: There was no RCP present in the organization, or there was no RCP applicable to the resource. For example, the resource being analyzed is an Amazon RDS snapshot and there is an RCP in the organization, but the RCP only impacts Amazon S3 buckets.</p> </li> <li> <p> <code>APPLIED</code>: This restriction is not currently available for external access findings. </p> </li> </ul>"
18451849
}
18461850
},
18471851
"documentation":"<p>Contains information about an external access finding.</p>"
@@ -1983,6 +1987,10 @@
19831987
"FindingDetails":{
19841988
"type":"structure",
19851989
"members":{
1990+
"internalAccessDetails":{
1991+
"shape":"InternalAccessDetails",
1992+
"documentation":"<p>The details for an internal access analyzer finding. This contains information about access patterns identified within your Amazon Web Services organization or account.</p>"
1993+
},
19861994
"externalAccessDetails":{
19871995
"shape":"ExternalAccessDetails",
19881996
"documentation":"<p>The details for an external access analyzer finding.</p>"
@@ -2199,7 +2207,7 @@
21992207
},
22002208
"findingType":{
22012209
"shape":"FindingType",
2202-
"documentation":"<p>The type of the external access or unused access finding.</p>"
2210+
"documentation":"<p>The type of the access finding. For external access analyzers, the type is <code>ExternalAccess</code>. For unused access analyzers, the type can be <code>UnusedIAMRole</code>, <code>UnusedIAMUserAccessKey</code>, <code>UnusedIAMUserPassword</code>, or <code>UnusedPermission</code>. For internal access analyzers, the type is <code>InternalAccess</code>.</p>"
22032211
}
22042212
},
22052213
"documentation":"<p>Contains information about a finding.</p>"
@@ -2211,7 +2219,8 @@
22112219
"UnusedIAMRole",
22122220
"UnusedIAMUserAccessKey",
22132221
"UnusedIAMUserPassword",
2214-
"UnusedPermission"
2222+
"UnusedPermission",
2223+
"InternalAccess"
22152224
]
22162225
},
22172226
"FindingsList":{
@@ -2229,6 +2238,10 @@
22292238
"shape":"ExternalAccessFindingsStatistics",
22302239
"documentation":"<p>The aggregate statistics for an external access analyzer.</p>"
22312240
},
2241+
"internalAccessFindingsStatistics":{
2242+
"shape":"InternalAccessFindingsStatistics",
2243+
"documentation":"<p>The aggregate statistics for an internal access analyzer. This includes information about active, archived, and resolved findings related to internal access within your Amazon Web Services organization or account.</p>"
2244+
},
22322245
"unusedAccessFindingsStatistics":{
22332246
"shape":"UnusedAccessFindingsStatistics",
22342247
"documentation":"<p>The aggregate statistics for an unused access analyzer.</p>"
@@ -2644,7 +2657,7 @@
26442657
},
26452658
"findingType":{
26462659
"shape":"FindingType",
2647-
"documentation":"<p>The type of the finding. For external access analyzers, the type is <code>ExternalAccess</code>. For unused access analyzers, the type can be <code>UnusedIAMRole</code>, <code>UnusedIAMUserAccessKey</code>, <code>UnusedIAMUserPassword</code>, or <code>UnusedPermission</code>.</p>"
2660+
"documentation":"<p>The type of the finding. For external access analyzers, the type is <code>ExternalAccess</code>. For unused access analyzers, the type can be <code>UnusedIAMRole</code>, <code>UnusedIAMUserAccessKey</code>, <code>UnusedIAMUserPassword</code>, or <code>UnusedPermission</code>. For internal access analyzers, the type is <code>InternalAccess</code>.</p>"
26482661
}
26492662
}
26502663
},
@@ -2750,6 +2763,142 @@
27502763
"type":"integer",
27512764
"box":true
27522765
},
2766+
"InternalAccessAnalysisRule":{
2767+
"type":"structure",
2768+
"members":{
2769+
"inclusions":{
2770+
"shape":"InternalAccessAnalysisRuleCriteriaList",
2771+
"documentation":"<p>A list of rules for the internal access analyzer containing criteria to include in analysis. Only resources that meet the rule criteria will generate findings.</p>"
2772+
}
2773+
},
2774+
"documentation":"<p>Contains information about analysis rules for the internal access analyzer. Analysis rules determine which entities will generate findings based on the criteria you define when you create the rule.</p>"
2775+
},
2776+
"InternalAccessAnalysisRuleCriteria":{
2777+
"type":"structure",
2778+
"members":{
2779+
"accountIds":{
2780+
"shape":"AccountIdsList",
2781+
"documentation":"<p>A list of Amazon Web Services account IDs to apply to the internal access analysis rule criteria. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers.</p>"
2782+
},
2783+
"resourceTypes":{
2784+
"shape":"ResourceTypeList",
2785+
"documentation":"<p>A list of resource types to apply to the internal access analysis rule criteria. The analyzer will only generate findings for resources of these types. These resource types are currently supported for internal access analyzers:</p> <ul> <li> <p> <code>AWS::S3::Bucket</code> </p> </li> <li> <p> <code>AWS::RDS::DBSnapshot</code> </p> </li> <li> <p> <code>AWS::RDS::DBClusterSnapshot</code> </p> </li> <li> <p> <code>AWS::S3Express::DirectoryBucket</code> </p> </li> <li> <p> <code>AWS::DynamoDB::Table</code> </p> </li> <li> <p> <code>AWS::DynamoDB::Stream</code> </p> </li> </ul>"
2786+
},
2787+
"resourceArns":{
2788+
"shape":"ResourceArnsList",
2789+
"documentation":"<p>A list of resource ARNs to apply to the internal access analysis rule criteria. The analyzer will only generate findings for resources that match these ARNs.</p>"
2790+
}
2791+
},
2792+
"documentation":"<p>The criteria for an analysis rule for an internal access analyzer.</p>"
2793+
},
2794+
"InternalAccessAnalysisRuleCriteriaList":{
2795+
"type":"list",
2796+
"member":{"shape":"InternalAccessAnalysisRuleCriteria"}
2797+
},
2798+
"InternalAccessConfiguration":{
2799+
"type":"structure",
2800+
"members":{
2801+
"analysisRule":{
2802+
"shape":"InternalAccessAnalysisRule",
2803+
"documentation":"<p>Contains information about analysis rules for the internal access analyzer. These rules determine which resources and access patterns will be analyzed.</p>"
2804+
}
2805+
},
2806+
"documentation":"<p>Specifies the configuration of an internal access analyzer for an Amazon Web Services organization or account. This configuration determines how the analyzer evaluates internal access within your Amazon Web Services environment.</p>"
2807+
},
2808+
"InternalAccessDetails":{
2809+
"type":"structure",
2810+
"members":{
2811+
"action":{
2812+
"shape":"ActionList",
2813+
"documentation":"<p>The action in the analyzed policy statement that has internal access permission to use.</p>"
2814+
},
2815+
"condition":{
2816+
"shape":"ConditionKeyMap",
2817+
"documentation":"<p>The condition in the analyzed policy statement that resulted in an internal access finding.</p>"
2818+
},
2819+
"principal":{
2820+
"shape":"PrincipalMap",
2821+
"documentation":"<p>The principal that has access to a resource within the internal environment.</p>"
2822+
},
2823+
"principalOwnerAccount":{
2824+
"shape":"String",
2825+
"documentation":"<p>The Amazon Web Services account ID that owns the principal identified in the internal access finding.</p>"
2826+
},
2827+
"accessType":{
2828+
"shape":"InternalAccessType",
2829+
"documentation":"<p>The type of internal access identified in the finding. This indicates how the access is granted within your Amazon Web Services environment.</p>"
2830+
},
2831+
"principalType":{
2832+
"shape":"PrincipalType",
2833+
"documentation":"<p>The type of principal identified in the internal access finding, such as IAM role or IAM user.</p>"
2834+
},
2835+
"sources":{
2836+
"shape":"FindingSourceList",
2837+
"documentation":"<p>The sources of the internal access finding. This indicates how the access that generated the finding is granted within your Amazon Web Services environment.</p>"
2838+
},
2839+
"resourceControlPolicyRestriction":{
2840+
"shape":"ResourceControlPolicyRestriction",
2841+
"documentation":"<p>The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).</p> <ul> <li> <p> <code>APPLICABLE</code>: There is an RCP present in the organization but IAM Access Analyzer does not include it in the evaluation of effective permissions. For example, if <code>s3:DeleteObject</code> is blocked by the RCP and the restriction is <code>APPLICABLE</code>, then <code>s3:DeleteObject</code> would still be included in the list of actions for the finding. Only applicable to internal access findings with the account as the zone of trust. </p> </li> <li> <p> <code>FAILED_TO_EVALUATE_RCP</code>: There was an error evaluating the RCP.</p> </li> <li> <p> <code>NOT_APPLICABLE</code>: There was no RCP present in the organization. For internal access findings with the account as the zone of trust, <code>NOT_APPLICABLE</code> could also indicate that there was no RCP applicable to the resource.</p> </li> <li> <p> <code>APPLIED</code>: An RCP is present in the organization and IAM Access Analyzer included it in the evaluation of effective permissions. For example, if <code>s3:DeleteObject</code> is blocked by the RCP and the restriction is <code>APPLIED</code>, then <code>s3:DeleteObject</code> would not be included in the list of actions for the finding. Only applicable to internal access findings with the organization as the zone of trust. </p> </li> </ul>"
2842+
},
2843+
"serviceControlPolicyRestriction":{
2844+
"shape":"ServiceControlPolicyRestriction",
2845+
"documentation":"<p>The type of restriction applied to the finding by an Organizations service control policy (SCP).</p> <ul> <li> <p> <code>APPLICABLE</code>: There is an SCP present in the organization but IAM Access Analyzer does not include it in the evaluation of effective permissions. Only applicable to internal access findings with the account as the zone of trust. </p> </li> <li> <p> <code>FAILED_TO_EVALUATE_SCP</code>: There was an error evaluating the SCP.</p> </li> <li> <p> <code>NOT_APPLICABLE</code>: There was no SCP present in the organization. For internal access findings with the account as the zone of trust, <code>NOT_APPLICABLE</code> could also indicate that there was no SCP applicable to the principal.</p> </li> <li> <p> <code>APPLIED</code>: An SCP is present in the organization and IAM Access Analyzer included it in the evaluation of effective permissions. Only applicable to internal access findings with the organization as the zone of trust. </p> </li> </ul>"
2846+
}
2847+
},
2848+
"documentation":"<p>Contains information about an internal access finding. This includes details about the access that was identified within your Amazon Web Services organization or account.</p>"
2849+
},
2850+
"InternalAccessFindingsStatistics":{
2851+
"type":"structure",
2852+
"members":{
2853+
"resourceTypeStatistics":{
2854+
"shape":"InternalAccessResourceTypeStatisticsMap",
2855+
"documentation":"<p>The total number of active findings for each resource type of the specified internal access analyzer.</p>"
2856+
},
2857+
"totalActiveFindings":{
2858+
"shape":"Integer",
2859+
"documentation":"<p>The number of active findings for the specified internal access analyzer.</p>"
2860+
},
2861+
"totalArchivedFindings":{
2862+
"shape":"Integer",
2863+
"documentation":"<p>The number of archived findings for the specified internal access analyzer.</p>"
2864+
},
2865+
"totalResolvedFindings":{
2866+
"shape":"Integer",
2867+
"documentation":"<p>The number of resolved findings for the specified internal access analyzer.</p>"
2868+
}
2869+
},
2870+
"documentation":"<p>Provides aggregate statistics about the findings for the specified internal access analyzer. This includes counts of active, archived, and resolved findings.</p>"
2871+
},
2872+
"InternalAccessResourceTypeDetails":{
2873+
"type":"structure",
2874+
"members":{
2875+
"totalActiveFindings":{
2876+
"shape":"Integer",
2877+
"documentation":"<p>The total number of active findings for the resource type in the internal access analyzer.</p>"
2878+
},
2879+
"totalResolvedFindings":{
2880+
"shape":"Integer",
2881+
"documentation":"<p>The total number of resolved findings for the resource type in the internal access analyzer.</p>"
2882+
},
2883+
"totalArchivedFindings":{
2884+
"shape":"Integer",
2885+
"documentation":"<p>The total number of archived findings for the resource type in the internal access analyzer.</p>"
2886+
}
2887+
},
2888+
"documentation":"<p>Contains information about the total number of active, archived, and resolved findings for a resource type of an internal access analyzer.</p>"
2889+
},
2890+
"InternalAccessResourceTypeStatisticsMap":{
2891+
"type":"map",
2892+
"key":{"shape":"ResourceType"},
2893+
"value":{"shape":"InternalAccessResourceTypeDetails"}
2894+
},
2895+
"InternalAccessType":{
2896+
"type":"string",
2897+
"enum":[
2898+
"INTRA_ACCOUNT",
2899+
"INTRA_ORG"
2900+
]
2901+
},
27532902
"InternalServerException":{
27542903
"type":"structure",
27552904
"required":["message"],
@@ -3480,6 +3629,13 @@
34803629
"key":{"shape":"String"},
34813630
"value":{"shape":"String"}
34823631
},
3632+
"PrincipalType":{
3633+
"type":"string",
3634+
"enum":[
3635+
"IAM_ROLE",
3636+
"IAM_USER"
3637+
]
3638+
},
34833639
"RdsDbClusterSnapshotAccountId":{"type":"string"},
34843640
"RdsDbClusterSnapshotAccountIdsList":{
34853641
"type":"list",
@@ -3642,12 +3798,17 @@
36423798
"type":"string",
36433799
"pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*"
36443800
},
3801+
"ResourceArnsList":{
3802+
"type":"list",
3803+
"member":{"shape":"String"}
3804+
},
36453805
"ResourceControlPolicyRestriction":{
36463806
"type":"string",
36473807
"enum":[
36483808
"APPLICABLE",
36493809
"FAILED_TO_EVALUATE_RCP",
3650-
"NOT_APPLICABLE"
3810+
"NOT_APPLICABLE",
3811+
"APPLIED"
36513812
]
36523813
},
36533814
"ResourceNotFoundException":{
@@ -3711,6 +3872,10 @@
37113872
},
37123873
"documentation":"<p>Contains information about the total number of active cross-account and public findings for a resource type of an external access analyzer.</p>"
37133874
},
3875+
"ResourceTypeList":{
3876+
"type":"list",
3877+
"member":{"shape":"ResourceType"}
3878+
},
37143879
"ResourceTypeStatisticsMap":{
37153880
"type":"map",
37163881
"key":{"shape":"ResourceType"},
@@ -3858,6 +4023,15 @@
38584023
},
38594024
"SecretsManagerSecretKmsId":{"type":"string"},
38604025
"SecretsManagerSecretPolicy":{"type":"string"},
4026+
"ServiceControlPolicyRestriction":{
4027+
"type":"string",
4028+
"enum":[
4029+
"APPLICABLE",
4030+
"FAILED_TO_EVALUATE_SCP",
4031+
"NOT_APPLICABLE",
4032+
"APPLIED"
4033+
]
4034+
},
38614035
"ServiceQuotaExceededException":{
38624036
"type":"structure",
38634037
"required":[
@@ -4150,7 +4324,9 @@
41504324
"ACCOUNT",
41514325
"ORGANIZATION",
41524326
"ACCOUNT_UNUSED_ACCESS",
4153-
"ORGANIZATION_UNUSED_ACCESS"
4327+
"ORGANIZATION_UNUSED_ACCESS",
4328+
"ACCOUNT_INTERNAL_ACCESS",
4329+
"ORGANIZATION_INTERNAL_ACCESS"
41544330
]
41554331
},
41564332
"UnprocessableEntityException":{

0 commit comments

Comments
 (0)