aws-sdk-accessanalyzer 1.42.0 → 1.44.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f30d95b90e8ef9014b96c9869ab1d511cb8b6c487d46f780fef7dc34bb3e50f
4
- data.tar.gz: 89dc3309457d4f7407d590cd169c2ba26f9c8229806206186a12d5fd1d33dfff
3
+ metadata.gz: 285b48379971e72e2dffbe557211cd2eaf67ce95132ad62106e055d1bb247890
4
+ data.tar.gz: 29e0cc6e1f4af53e6ecd79512eafa4cb4205045306d58c4b43e9eb86e7c490a2
5
5
  SHA512:
6
- metadata.gz: 5d9489449a3a8e2c7c749afeaa32d68d593f56e062a546d800d79d4fdf3b230e8d4a7bb4e697364e03853e4ef43850e34960214e184001e03e043cbde81f76ce
7
- data.tar.gz: 57d08e9cdd7048653e9ce1f1a3c1bec1bcf95dd72d727e5251721897a8a2a73e660c58019d12af1239f860095bfa70c8adcda828a79f3811c1dadba12c25d14b
6
+ metadata.gz: b803e3c443b6abdbb6cc1892e8b4c7f7a5cb1d3e922ce1eae316cbd189f2cb5c8987087c941f970ebbac8a336c5d61e718d4161004640368244fb09b7f35a910
7
+ data.tar.gz: 74d63e70911fde671d7fc76364d3d02c31a4b8e58b27bb98538072a95e7921b2cc8c703fa1dd56edf834659bc42eb1be4abb10dff2e4845df9afcd15ca818cfe
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.44.0 (2023-11-28)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for external access findings for S3 directory buckets to help you easily identify cross-account access. Updated service API, documentation, and paginators.
8
+
9
+ 1.43.0 (2023-11-27)
10
+ ------------------
11
+
12
+ * Feature - IAM Access Analyzer now continuously monitors IAM roles and users in your AWS account or organization to generate findings for unused access. Additionally, IAM Access Analyzer now provides custom policy checks to validate that IAM policies adhere to your security standards ahead of deployments.
13
+
4
14
  1.42.0 (2023-11-22)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.42.0
1
+ 1.44.0
@@ -447,6 +447,125 @@ module Aws::AccessAnalyzer
447
447
  req.send_request(options)
448
448
  end
449
449
 
450
+ # Checks whether the specified access isn't allowed by a policy.
451
+ #
452
+ # @option params [required, String] :policy_document
453
+ # The JSON policy document to use as the content for the policy.
454
+ #
455
+ # @option params [required, Array<Types::Access>] :access
456
+ # An access object containing the permissions that shouldn't be granted
457
+ # by the specified policy.
458
+ #
459
+ # @option params [required, String] :policy_type
460
+ # The type of policy. Identity policies grant permissions to IAM
461
+ # principals. Identity policies include managed and inline policies for
462
+ # IAM roles, users, and groups.
463
+ #
464
+ # Resource policies grant permissions on Amazon Web Services resources.
465
+ # Resource policies include trust policies for IAM roles and bucket
466
+ # policies for Amazon S3 buckets. You can provide a generic input such
467
+ # as identity policy or resource policy or a specific input such as
468
+ # managed policy or Amazon S3 bucket policy.
469
+ #
470
+ # @return [Types::CheckAccessNotGrantedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
471
+ #
472
+ # * {Types::CheckAccessNotGrantedResponse#result #result} => String
473
+ # * {Types::CheckAccessNotGrantedResponse#message #message} => String
474
+ # * {Types::CheckAccessNotGrantedResponse#reasons #reasons} => Array&lt;Types::ReasonSummary&gt;
475
+ #
476
+ # @example Request syntax with placeholder values
477
+ #
478
+ # resp = client.check_access_not_granted({
479
+ # policy_document: "AccessCheckPolicyDocument", # required
480
+ # access: [ # required
481
+ # {
482
+ # actions: ["Action"], # required
483
+ # },
484
+ # ],
485
+ # policy_type: "IDENTITY_POLICY", # required, accepts IDENTITY_POLICY, RESOURCE_POLICY
486
+ # })
487
+ #
488
+ # @example Response structure
489
+ #
490
+ # resp.result #=> String, one of "PASS", "FAIL"
491
+ # resp.message #=> String
492
+ # resp.reasons #=> Array
493
+ # resp.reasons[0].description #=> String
494
+ # resp.reasons[0].statement_index #=> Integer
495
+ # resp.reasons[0].statement_id #=> String
496
+ #
497
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckAccessNotGranted AWS API Documentation
498
+ #
499
+ # @overload check_access_not_granted(params = {})
500
+ # @param [Hash] params ({})
501
+ def check_access_not_granted(params = {}, options = {})
502
+ req = build_request(:check_access_not_granted, params)
503
+ req.send_request(options)
504
+ end
505
+
506
+ # Checks whether new access is allowed for an updated policy when
507
+ # compared to the existing policy.
508
+ #
509
+ # You can find examples for reference policies and learn how to set up
510
+ # and run a custom policy check for new access in the [IAM Access
511
+ # Analyzer custom policy checks samples][1] repository on GitHub. The
512
+ # reference policies in this repository are meant to be passed to the
513
+ # `existingPolicyDocument` request parameter.
514
+ #
515
+ #
516
+ #
517
+ # [1]: https://github.com/aws-samples/iam-access-analyzer-custom-policy-check-samples
518
+ #
519
+ # @option params [required, String] :new_policy_document
520
+ # The JSON policy document to use as the content for the updated policy.
521
+ #
522
+ # @option params [required, String] :existing_policy_document
523
+ # The JSON policy document to use as the content for the existing
524
+ # policy.
525
+ #
526
+ # @option params [required, String] :policy_type
527
+ # The type of policy to compare. Identity policies grant permissions to
528
+ # IAM principals. Identity policies include managed and inline policies
529
+ # for IAM roles, users, and groups.
530
+ #
531
+ # Resource policies grant permissions on Amazon Web Services resources.
532
+ # Resource policies include trust policies for IAM roles and bucket
533
+ # policies for Amazon S3 buckets. You can provide a generic input such
534
+ # as identity policy or resource policy or a specific input such as
535
+ # managed policy or Amazon S3 bucket policy.
536
+ #
537
+ # @return [Types::CheckNoNewAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
538
+ #
539
+ # * {Types::CheckNoNewAccessResponse#result #result} => String
540
+ # * {Types::CheckNoNewAccessResponse#message #message} => String
541
+ # * {Types::CheckNoNewAccessResponse#reasons #reasons} => Array&lt;Types::ReasonSummary&gt;
542
+ #
543
+ # @example Request syntax with placeholder values
544
+ #
545
+ # resp = client.check_no_new_access({
546
+ # new_policy_document: "AccessCheckPolicyDocument", # required
547
+ # existing_policy_document: "AccessCheckPolicyDocument", # required
548
+ # policy_type: "IDENTITY_POLICY", # required, accepts IDENTITY_POLICY, RESOURCE_POLICY
549
+ # })
550
+ #
551
+ # @example Response structure
552
+ #
553
+ # resp.result #=> String, one of "PASS", "FAIL"
554
+ # resp.message #=> String
555
+ # resp.reasons #=> Array
556
+ # resp.reasons[0].description #=> String
557
+ # resp.reasons[0].statement_index #=> Integer
558
+ # resp.reasons[0].statement_id #=> String
559
+ #
560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckNoNewAccess AWS API Documentation
561
+ #
562
+ # @overload check_no_new_access(params = {})
563
+ # @param [Hash] params ({})
564
+ def check_no_new_access(params = {}, options = {})
565
+ req = build_request(:check_no_new_access, params)
566
+ req.send_request(options)
567
+ end
568
+
450
569
  # Creates an access preview that allows you to preview IAM Access
451
570
  # Analyzer findings for your resource before deploying resource
452
571
  # permissions.
@@ -576,6 +695,9 @@ module Aws::AccessAnalyzer
576
695
  # sqs_queue: {
577
696
  # queue_policy: "SqsQueuePolicy",
578
697
  # },
698
+ # s3_express_directory_bucket: {
699
+ # bucket_policy: "S3ExpressDirectoryBucketPolicy",
700
+ # },
579
701
  # },
580
702
  # },
581
703
  # client_token: "String",
@@ -600,10 +722,10 @@ module Aws::AccessAnalyzer
600
722
  # The name of the analyzer to create.
601
723
  #
602
724
  # @option params [required, String] :type
603
- # The type of analyzer to create. Only ACCOUNT and ORGANIZATION
604
- # analyzers are supported. You can create only one analyzer per account
605
- # per Region. You can create up to 5 analyzers per organization per
606
- # Region.
725
+ # The type of analyzer to create. Only `ACCOUNT`, `ORGANIZATION`,
726
+ # `ACCOUNT_UNUSED_ACCESS`, and `ORGANIZTAION_UNUSED_ACCESS` analyzers
727
+ # are supported. You can create only one analyzer per account per
728
+ # Region. You can create up to 5 analyzers per organization per Region.
607
729
  #
608
730
  # @option params [Array<Types::InlineArchiveRule>] :archive_rules
609
731
  # Specifies the archive rules to add for the analyzer. Archive rules
@@ -611,7 +733,7 @@ module Aws::AccessAnalyzer
611
733
  # the rule.
612
734
  #
613
735
  # @option params [Hash<String,String>] :tags
614
- # The tags to apply to the analyzer.
736
+ # An array of key-value pairs to apply to the analyzer.
615
737
  #
616
738
  # @option params [String] :client_token
617
739
  # A client token.
@@ -619,6 +741,12 @@ module Aws::AccessAnalyzer
619
741
  # **A suitable default value is auto-generated.** You should normally
620
742
  # not need to pass this option.**
621
743
  #
744
+ # @option params [Types::AnalyzerConfiguration] :configuration
745
+ # Specifies the configuration of the analyzer. If the analyzer is an
746
+ # unused access analyzer, the specified scope of unused access is used
747
+ # for the configuration. If the analyzer is an external access analyzer,
748
+ # this field is not used.
749
+ #
622
750
  # @return [Types::CreateAnalyzerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
623
751
  #
624
752
  # * {Types::CreateAnalyzerResponse#arn #arn} => String
@@ -627,7 +755,7 @@ module Aws::AccessAnalyzer
627
755
  #
628
756
  # resp = client.create_analyzer({
629
757
  # analyzer_name: "Name", # required
630
- # type: "ACCOUNT", # required, accepts ACCOUNT, ORGANIZATION
758
+ # type: "ACCOUNT", # required, accepts ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, ORGANIZATION_UNUSED_ACCESS
631
759
  # archive_rules: [
632
760
  # {
633
761
  # rule_name: "Name", # required
@@ -645,6 +773,11 @@ module Aws::AccessAnalyzer
645
773
  # "String" => "String",
646
774
  # },
647
775
  # client_token: "String",
776
+ # configuration: {
777
+ # unused_access: {
778
+ # unused_access_age: 1,
779
+ # },
780
+ # },
648
781
  # })
649
782
  #
650
783
  # @example Response structure
@@ -852,6 +985,7 @@ module Aws::AccessAnalyzer
852
985
  # resp.access_preview.configurations["ConfigurationsMapKey"].s3_bucket.access_points["AccessPointArn"].network_origin.vpc_configuration.vpc_id #=> String
853
986
  # resp.access_preview.configurations["ConfigurationsMapKey"].sns_topic.topic_policy #=> String
854
987
  # resp.access_preview.configurations["ConfigurationsMapKey"].sqs_queue.queue_policy #=> String
988
+ # resp.access_preview.configurations["ConfigurationsMapKey"].s3_express_directory_bucket.bucket_policy #=> String
855
989
  # resp.access_preview.created_at #=> Time
856
990
  # resp.access_preview.status #=> String, one of "COMPLETED", "CREATING", "FAILED"
857
991
  # resp.access_preview.status_reason.code #=> String, one of "INTERNAL_ERROR", "INVALID_CONFIGURATION"
@@ -891,7 +1025,7 @@ module Aws::AccessAnalyzer
891
1025
  # @example Response structure
892
1026
  #
893
1027
  # resp.resource.resource_arn #=> String
894
- # resp.resource.resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic"
1028
+ # resp.resource.resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
895
1029
  # resp.resource.created_at #=> Time
896
1030
  # resp.resource.analyzed_at #=> Time
897
1031
  # resp.resource.updated_at #=> Time
@@ -932,7 +1066,7 @@ module Aws::AccessAnalyzer
932
1066
  #
933
1067
  # resp.analyzer.arn #=> String
934
1068
  # resp.analyzer.name #=> String
935
- # resp.analyzer.type #=> String, one of "ACCOUNT", "ORGANIZATION"
1069
+ # resp.analyzer.type #=> String, one of "ACCOUNT", "ORGANIZATION", "ACCOUNT_UNUSED_ACCESS", "ORGANIZATION_UNUSED_ACCESS"
936
1070
  # resp.analyzer.created_at #=> Time
937
1071
  # resp.analyzer.last_resource_analyzed #=> String
938
1072
  # resp.analyzer.last_resource_analyzed_at #=> Time
@@ -940,6 +1074,7 @@ module Aws::AccessAnalyzer
940
1074
  # resp.analyzer.tags["String"] #=> String
941
1075
  # resp.analyzer.status #=> String, one of "ACTIVE", "CREATING", "DISABLED", "FAILED"
942
1076
  # resp.analyzer.status_reason.code #=> String, one of "AWS_SERVICE_ACCESS_DISABLED", "DELEGATED_ADMINISTRATOR_DEREGISTERED", "ORGANIZATION_DELETED", "SERVICE_LINKED_ROLE_CREATION_FAILED"
1077
+ # resp.analyzer.configuration.unused_access.unused_access_age #=> Integer
943
1078
  #
944
1079
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer AWS API Documentation
945
1080
  #
@@ -1031,7 +1166,7 @@ module Aws::AccessAnalyzer
1031
1166
  # resp.finding.action[0] #=> String
1032
1167
  # resp.finding.resource #=> String
1033
1168
  # resp.finding.is_public #=> Boolean
1034
- # resp.finding.resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic"
1169
+ # resp.finding.resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1035
1170
  # resp.finding.condition #=> Hash
1036
1171
  # resp.finding.condition["String"] #=> String
1037
1172
  # resp.finding.created_at #=> Time
@@ -1054,6 +1189,94 @@ module Aws::AccessAnalyzer
1054
1189
  req.send_request(options)
1055
1190
  end
1056
1191
 
1192
+ # Retrieves information about the specified finding.
1193
+ #
1194
+ # @option params [required, String] :analyzer_arn
1195
+ # The [ARN of the analyzer][1] that generated the finding.
1196
+ #
1197
+ #
1198
+ #
1199
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
1200
+ #
1201
+ # @option params [required, String] :id
1202
+ # The ID of the finding to retrieve.
1203
+ #
1204
+ # @option params [Integer] :max_results
1205
+ # The maximum number of results to return in the response.
1206
+ #
1207
+ # @option params [String] :next_token
1208
+ # A token used for pagination of results returned.
1209
+ #
1210
+ # @return [Types::GetFindingV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1211
+ #
1212
+ # * {Types::GetFindingV2Response#analyzed_at #analyzed_at} => Time
1213
+ # * {Types::GetFindingV2Response#created_at #created_at} => Time
1214
+ # * {Types::GetFindingV2Response#error #error} => String
1215
+ # * {Types::GetFindingV2Response#id #id} => String
1216
+ # * {Types::GetFindingV2Response#next_token #next_token} => String
1217
+ # * {Types::GetFindingV2Response#resource #resource} => String
1218
+ # * {Types::GetFindingV2Response#resource_type #resource_type} => String
1219
+ # * {Types::GetFindingV2Response#resource_owner_account #resource_owner_account} => String
1220
+ # * {Types::GetFindingV2Response#status #status} => String
1221
+ # * {Types::GetFindingV2Response#updated_at #updated_at} => Time
1222
+ # * {Types::GetFindingV2Response#finding_details #finding_details} => Array&lt;Types::FindingDetails&gt;
1223
+ # * {Types::GetFindingV2Response#finding_type #finding_type} => String
1224
+ #
1225
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1226
+ #
1227
+ # @example Request syntax with placeholder values
1228
+ #
1229
+ # resp = client.get_finding_v2({
1230
+ # analyzer_arn: "AnalyzerArn", # required
1231
+ # id: "FindingId", # required
1232
+ # max_results: 1,
1233
+ # next_token: "Token",
1234
+ # })
1235
+ #
1236
+ # @example Response structure
1237
+ #
1238
+ # resp.analyzed_at #=> Time
1239
+ # resp.created_at #=> Time
1240
+ # resp.error #=> String
1241
+ # resp.id #=> String
1242
+ # resp.next_token #=> String
1243
+ # resp.resource #=> String
1244
+ # resp.resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1245
+ # resp.resource_owner_account #=> String
1246
+ # resp.status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
1247
+ # resp.updated_at #=> Time
1248
+ # resp.finding_details #=> Array
1249
+ # resp.finding_details[0].external_access_details.action #=> Array
1250
+ # resp.finding_details[0].external_access_details.action[0] #=> String
1251
+ # resp.finding_details[0].external_access_details.condition #=> Hash
1252
+ # resp.finding_details[0].external_access_details.condition["String"] #=> String
1253
+ # resp.finding_details[0].external_access_details.is_public #=> Boolean
1254
+ # resp.finding_details[0].external_access_details.principal #=> Hash
1255
+ # resp.finding_details[0].external_access_details.principal["String"] #=> String
1256
+ # resp.finding_details[0].external_access_details.sources #=> Array
1257
+ # resp.finding_details[0].external_access_details.sources[0].type #=> String, one of "POLICY", "BUCKET_ACL", "S3_ACCESS_POINT", "S3_ACCESS_POINT_ACCOUNT"
1258
+ # resp.finding_details[0].external_access_details.sources[0].detail.access_point_arn #=> String
1259
+ # resp.finding_details[0].external_access_details.sources[0].detail.access_point_account #=> String
1260
+ # resp.finding_details[0].unused_permission_details.actions #=> Array
1261
+ # resp.finding_details[0].unused_permission_details.actions[0].action #=> String
1262
+ # resp.finding_details[0].unused_permission_details.actions[0].last_accessed #=> Time
1263
+ # resp.finding_details[0].unused_permission_details.service_namespace #=> String
1264
+ # resp.finding_details[0].unused_permission_details.last_accessed #=> Time
1265
+ # resp.finding_details[0].unused_iam_user_access_key_details.access_key_id #=> String
1266
+ # resp.finding_details[0].unused_iam_user_access_key_details.last_accessed #=> Time
1267
+ # resp.finding_details[0].unused_iam_role_details.last_accessed #=> Time
1268
+ # resp.finding_details[0].unused_iam_user_password_details.last_accessed #=> Time
1269
+ # resp.finding_type #=> String, one of "ExternalAccess", "UnusedIAMRole", "UnusedIAMUserAccessKey", "UnusedIAMUserPassword", "UnusedPermission"
1270
+ #
1271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingV2 AWS API Documentation
1272
+ #
1273
+ # @overload get_finding_v2(params = {})
1274
+ # @param [Hash] params ({})
1275
+ def get_finding_v2(params = {}, options = {})
1276
+ req = build_request(:get_finding_v2, params)
1277
+ req.send_request(options)
1278
+ end
1279
+
1057
1280
  # Retrieves the policy that was generated using `StartPolicyGeneration`.
1058
1281
  #
1059
1282
  # @option params [required, String] :job_id
@@ -1181,7 +1404,7 @@ module Aws::AccessAnalyzer
1181
1404
  # resp.findings[0].condition["String"] #=> String
1182
1405
  # resp.findings[0].resource #=> String
1183
1406
  # resp.findings[0].is_public #=> Boolean
1184
- # resp.findings[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic"
1407
+ # resp.findings[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1185
1408
  # resp.findings[0].created_at #=> Time
1186
1409
  # resp.findings[0].change_type #=> String, one of "CHANGED", "NEW", "UNCHANGED"
1187
1410
  # resp.findings[0].status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
@@ -1282,7 +1505,7 @@ module Aws::AccessAnalyzer
1282
1505
  #
1283
1506
  # resp = client.list_analyzed_resources({
1284
1507
  # analyzer_arn: "AnalyzerArn", # required
1285
- # resource_type: "AWS::S3::Bucket", # accepts AWS::S3::Bucket, AWS::IAM::Role, AWS::SQS::Queue, AWS::Lambda::Function, AWS::Lambda::LayerVersion, AWS::KMS::Key, AWS::SecretsManager::Secret, AWS::EFS::FileSystem, AWS::EC2::Snapshot, AWS::ECR::Repository, AWS::RDS::DBSnapshot, AWS::RDS::DBClusterSnapshot, AWS::SNS::Topic
1508
+ # resource_type: "AWS::S3::Bucket", # accepts AWS::S3::Bucket, AWS::IAM::Role, AWS::SQS::Queue, AWS::Lambda::Function, AWS::Lambda::LayerVersion, AWS::KMS::Key, AWS::SecretsManager::Secret, AWS::EFS::FileSystem, AWS::EC2::Snapshot, AWS::ECR::Repository, AWS::RDS::DBSnapshot, AWS::RDS::DBClusterSnapshot, AWS::SNS::Topic, AWS::S3Express::DirectoryBucket
1286
1509
  # next_token: "Token",
1287
1510
  # max_results: 1,
1288
1511
  # })
@@ -1292,7 +1515,7 @@ module Aws::AccessAnalyzer
1292
1515
  # resp.analyzed_resources #=> Array
1293
1516
  # resp.analyzed_resources[0].resource_arn #=> String
1294
1517
  # resp.analyzed_resources[0].resource_owner_account #=> String
1295
- # resp.analyzed_resources[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic"
1518
+ # resp.analyzed_resources[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1296
1519
  # resp.next_token #=> String
1297
1520
  #
1298
1521
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzedResources AWS API Documentation
@@ -1327,7 +1550,7 @@ module Aws::AccessAnalyzer
1327
1550
  # resp = client.list_analyzers({
1328
1551
  # next_token: "Token",
1329
1552
  # max_results: 1,
1330
- # type: "ACCOUNT", # accepts ACCOUNT, ORGANIZATION
1553
+ # type: "ACCOUNT", # accepts ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, ORGANIZATION_UNUSED_ACCESS
1331
1554
  # })
1332
1555
  #
1333
1556
  # @example Response structure
@@ -1335,7 +1558,7 @@ module Aws::AccessAnalyzer
1335
1558
  # resp.analyzers #=> Array
1336
1559
  # resp.analyzers[0].arn #=> String
1337
1560
  # resp.analyzers[0].name #=> String
1338
- # resp.analyzers[0].type #=> String, one of "ACCOUNT", "ORGANIZATION"
1561
+ # resp.analyzers[0].type #=> String, one of "ACCOUNT", "ORGANIZATION", "ACCOUNT_UNUSED_ACCESS", "ORGANIZATION_UNUSED_ACCESS"
1339
1562
  # resp.analyzers[0].created_at #=> Time
1340
1563
  # resp.analyzers[0].last_resource_analyzed #=> String
1341
1564
  # resp.analyzers[0].last_resource_analyzed_at #=> Time
@@ -1343,6 +1566,7 @@ module Aws::AccessAnalyzer
1343
1566
  # resp.analyzers[0].tags["String"] #=> String
1344
1567
  # resp.analyzers[0].status #=> String, one of "ACTIVE", "CREATING", "DISABLED", "FAILED"
1345
1568
  # resp.analyzers[0].status_reason.code #=> String, one of "AWS_SERVICE_ACCESS_DISABLED", "DELEGATED_ADMINISTRATOR_DEREGISTERED", "ORGANIZATION_DELETED", "SERVICE_LINKED_ROLE_CREATION_FAILED"
1569
+ # resp.analyzers[0].configuration.unused_access.unused_access_age #=> Integer
1346
1570
  # resp.next_token #=> String
1347
1571
  #
1348
1572
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers AWS API Documentation
@@ -1471,7 +1695,7 @@ module Aws::AccessAnalyzer
1471
1695
  # resp.findings[0].action[0] #=> String
1472
1696
  # resp.findings[0].resource #=> String
1473
1697
  # resp.findings[0].is_public #=> Boolean
1474
- # resp.findings[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic"
1698
+ # resp.findings[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1475
1699
  # resp.findings[0].condition #=> Hash
1476
1700
  # resp.findings[0].condition["String"] #=> String
1477
1701
  # resp.findings[0].created_at #=> Time
@@ -1495,6 +1719,86 @@ module Aws::AccessAnalyzer
1495
1719
  req.send_request(options)
1496
1720
  end
1497
1721
 
1722
+ # Retrieves a list of findings generated by the specified analyzer.
1723
+ #
1724
+ # To learn about filter keys that you can use to retrieve a list of
1725
+ # findings, see [IAM Access Analyzer filter keys][1] in the **IAM User
1726
+ # Guide**.
1727
+ #
1728
+ #
1729
+ #
1730
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html
1731
+ #
1732
+ # @option params [required, String] :analyzer_arn
1733
+ # The [ARN of the analyzer][1] to retrieve findings from.
1734
+ #
1735
+ #
1736
+ #
1737
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
1738
+ #
1739
+ # @option params [Hash<String,Types::Criterion>] :filter
1740
+ # A filter to match for the findings to return.
1741
+ #
1742
+ # @option params [Integer] :max_results
1743
+ # The maximum number of results to return in the response.
1744
+ #
1745
+ # @option params [String] :next_token
1746
+ # A token used for pagination of results returned.
1747
+ #
1748
+ # @option params [Types::SortCriteria] :sort
1749
+ # The criteria used to sort.
1750
+ #
1751
+ # @return [Types::ListFindingsV2Response] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1752
+ #
1753
+ # * {Types::ListFindingsV2Response#findings #findings} => Array&lt;Types::FindingSummaryV2&gt;
1754
+ # * {Types::ListFindingsV2Response#next_token #next_token} => String
1755
+ #
1756
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1757
+ #
1758
+ # @example Request syntax with placeholder values
1759
+ #
1760
+ # resp = client.list_findings_v2({
1761
+ # analyzer_arn: "AnalyzerArn", # required
1762
+ # filter: {
1763
+ # "String" => {
1764
+ # eq: ["String"],
1765
+ # neq: ["String"],
1766
+ # contains: ["String"],
1767
+ # exists: false,
1768
+ # },
1769
+ # },
1770
+ # max_results: 1,
1771
+ # next_token: "Token",
1772
+ # sort: {
1773
+ # attribute_name: "String",
1774
+ # order_by: "ASC", # accepts ASC, DESC
1775
+ # },
1776
+ # })
1777
+ #
1778
+ # @example Response structure
1779
+ #
1780
+ # resp.findings #=> Array
1781
+ # resp.findings[0].analyzed_at #=> Time
1782
+ # resp.findings[0].created_at #=> Time
1783
+ # resp.findings[0].error #=> String
1784
+ # resp.findings[0].id #=> String
1785
+ # resp.findings[0].resource #=> String
1786
+ # resp.findings[0].resource_type #=> String, one of "AWS::S3::Bucket", "AWS::IAM::Role", "AWS::SQS::Queue", "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", "AWS::SecretsManager::Secret", "AWS::EFS::FileSystem", "AWS::EC2::Snapshot", "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", "AWS::SNS::Topic", "AWS::S3Express::DirectoryBucket"
1787
+ # resp.findings[0].resource_owner_account #=> String
1788
+ # resp.findings[0].status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
1789
+ # resp.findings[0].updated_at #=> Time
1790
+ # resp.findings[0].finding_type #=> String, one of "ExternalAccess", "UnusedIAMRole", "UnusedIAMUserAccessKey", "UnusedIAMUserPassword", "UnusedPermission"
1791
+ # resp.next_token #=> String
1792
+ #
1793
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindingsV2 AWS API Documentation
1794
+ #
1795
+ # @overload list_findings_v2(params = {})
1796
+ # @param [Hash] params ({})
1797
+ def list_findings_v2(params = {}, options = {})
1798
+ req = build_request(:list_findings_v2, params)
1799
+ req.send_request(options)
1800
+ end
1801
+
1498
1802
  # Lists all of the policy generations requested in the last seven days.
1499
1803
  #
1500
1804
  # @option params [String] :principal_arn
@@ -1837,9 +2141,7 @@ module Aws::AccessAnalyzer
1837
2141
  # @option params [required, String] :policy_type
1838
2142
  # The type of policy to validate. Identity policies grant permissions to
1839
2143
  # IAM principals. Identity policies include managed and inline policies
1840
- # for IAM roles, users, and groups. They also include service-control
1841
- # policies (SCPs) that are attached to an Amazon Web Services
1842
- # organization, organizational unit (OU), or an account.
2144
+ # for IAM roles, users, and groups.
1843
2145
  #
1844
2146
  # Resource policies grant permissions on Amazon Web Services resources.
1845
2147
  # Resource policies include trust policies for IAM roles and bucket
@@ -1847,6 +2149,10 @@ module Aws::AccessAnalyzer
1847
2149
  # as identity policy or resource policy or a specific input such as
1848
2150
  # managed policy or Amazon S3 bucket policy.
1849
2151
  #
2152
+ # Service control policies (SCPs) are a type of organization policy
2153
+ # attached to an Amazon Web Services organization, organizational unit
2154
+ # (OU), or an account.
2155
+ #
1850
2156
  # @option params [String] :validate_policy_resource_type
1851
2157
  # The type of resource to attach to your resource policy. Specify a
1852
2158
  # value for the policy validation resource type only if the policy type
@@ -1922,7 +2228,7 @@ module Aws::AccessAnalyzer
1922
2228
  params: params,
1923
2229
  config: config)
1924
2230
  context[:gem_name] = 'aws-sdk-accessanalyzer'
1925
- context[:gem_version] = '1.42.0'
2231
+ context[:gem_version] = '1.44.0'
1926
2232
  Seahorse::Client::Request.new(handlers, context)
1927
2233
  end
1928
2234