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 +4 -4
- data/CHANGELOG.md +10 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-accessanalyzer/client.rb +325 -19
- data/lib/aws-sdk-accessanalyzer/client_api.rb +247 -0
- data/lib/aws-sdk-accessanalyzer/endpoint_provider.rb +2 -2
- data/lib/aws-sdk-accessanalyzer/endpoints.rb +56 -0
- data/lib/aws-sdk-accessanalyzer/errors.rb +36 -0
- data/lib/aws-sdk-accessanalyzer/plugins/endpoints.rb +11 -2
- data/lib/aws-sdk-accessanalyzer/types.rb +724 -13
- data/lib/aws-sdk-accessanalyzer.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 285b48379971e72e2dffbe557211cd2eaf67ce95132ad62106e055d1bb247890
|
4
|
+
data.tar.gz: 29e0cc6e1f4af53e6ecd79512eafa4cb4205045306d58c4b43e9eb86e7c490a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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<Types::ReasonSummary>
|
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<Types::ReasonSummary>
|
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
|
604
|
-
#
|
605
|
-
#
|
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
|
-
#
|
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<Types::FindingDetails>
|
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<Types::FindingSummaryV2>
|
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.
|
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.
|
2231
|
+
context[:gem_version] = '1.44.0'
|
1926
2232
|
Seahorse::Client::Request.new(handlers, context)
|
1927
2233
|
end
|
1928
2234
|
|