aws-sdk-accessanalyzer 1.50.0 → 1.52.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 +356 -5
- data/lib/aws-sdk-accessanalyzer/client_api.rb +116 -2
- data/lib/aws-sdk-accessanalyzer/endpoints.rb +42 -0
- data/lib/aws-sdk-accessanalyzer/plugins/endpoints.rb +6 -0
- data/lib/aws-sdk-accessanalyzer/types.rb +250 -5
- data/lib/aws-sdk-accessanalyzer.rb +1 -1
- data/sig/client.rbs +41 -1
- data/sig/types.rbs +66 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8b46b0ac5fd819979f698d09b75a136da0dafb206b5bb64abaa7d1dd530e218
|
4
|
+
data.tar.gz: 2498aa7fb11bc6e476aef57c12162a308a1edaee01d9a68d4dd9324bc08cb45a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74b9d388ccd49a530960e8cb1edfad04f1128abb1e8a081077c1d6fb3be86b4b9e072b62bd429b7abc4f3ba86c636d5eef2dc5da06f2f0544406087814a85b99
|
7
|
+
data.tar.gz: 3c97672480884e0df29e3c29a868421156753ebef7512aed800872e2bd9a2f87a07ae045e526c3a9d80215a4f0fc0c216017c28d86bd308c626785d08e5323c1
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
Unreleased Changes
|
2
2
|
------------------
|
3
3
|
|
4
|
+
1.52.0 (2024-06-24)
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
|
8
|
+
|
9
|
+
1.51.0 (2024-06-11)
|
10
|
+
------------------
|
11
|
+
|
12
|
+
* Feature - IAM Access Analyzer now provides policy recommendations to help resolve unused permissions for IAM roles and users. Additionally, IAM Access Analyzer now extends its custom policy checks to detect when IAM policies grant public access or access to critical resources ahead of deployments.
|
13
|
+
|
4
14
|
1.50.0 (2024-06-05)
|
5
15
|
------------------
|
6
16
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.52.0
|
@@ -89,6 +89,11 @@ module Aws::AccessAnalyzer
|
|
89
89
|
|
90
90
|
# @overload initialize(options)
|
91
91
|
# @param [Hash] options
|
92
|
+
#
|
93
|
+
# @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
|
94
|
+
# A list of plugins to apply to the client. Each plugin is either a
|
95
|
+
# class name or an instance of a plugin class.
|
96
|
+
#
|
92
97
|
# @option options [required, Aws::CredentialProvider] :credentials
|
93
98
|
# Your AWS credentials. This can be an instance of any one of the
|
94
99
|
# following classes:
|
@@ -209,7 +214,6 @@ module Aws::AccessAnalyzer
|
|
209
214
|
# 'https://example.com'
|
210
215
|
# 'http://example.com:123'
|
211
216
|
#
|
212
|
-
#
|
213
217
|
# @option options [Integer] :endpoint_cache_max_entries (1000)
|
214
218
|
# Used for the maximum size limit of the LRU cache storing endpoints data
|
215
219
|
# for endpoint discovery enabled operations. Defaults to 1000.
|
@@ -298,7 +302,6 @@ module Aws::AccessAnalyzer
|
|
298
302
|
# throttling. This is a provisional mode that may change behavior
|
299
303
|
# in the future.
|
300
304
|
#
|
301
|
-
#
|
302
305
|
# @option options [String] :sdk_ua_app_id
|
303
306
|
# A unique and opaque application ID that is appended to the
|
304
307
|
# User-Agent header as app/sdk_ua_app_id. It should have a
|
@@ -479,7 +482,12 @@ module Aws::AccessAnalyzer
|
|
479
482
|
#
|
480
483
|
# @option params [required, Array<Types::Access>] :access
|
481
484
|
# An access object containing the permissions that shouldn't be granted
|
482
|
-
# by the specified policy.
|
485
|
+
# by the specified policy. If only actions are specified, IAM Access
|
486
|
+
# Analyzer checks for access of the actions on all resources in the
|
487
|
+
# policy. If only resources are specified, then IAM Access Analyzer
|
488
|
+
# checks which actions have access to the specified resources. If both
|
489
|
+
# actions and resources are specified, then IAM Access Analyzer checks
|
490
|
+
# which of the specified actions have access to the specified resources.
|
483
491
|
#
|
484
492
|
# @option params [required, String] :policy_type
|
485
493
|
# The type of policy. Identity policies grant permissions to IAM
|
@@ -498,13 +506,82 @@ module Aws::AccessAnalyzer
|
|
498
506
|
# * {Types::CheckAccessNotGrantedResponse#message #message} => String
|
499
507
|
# * {Types::CheckAccessNotGrantedResponse#reasons #reasons} => Array<Types::ReasonSummary>
|
500
508
|
#
|
509
|
+
#
|
510
|
+
# @example Example: Passing check. Restrictive identity policy.
|
511
|
+
#
|
512
|
+
# resp = client.check_access_not_granted({
|
513
|
+
# access: [
|
514
|
+
# {
|
515
|
+
# actions: [
|
516
|
+
# "s3:PutObject",
|
517
|
+
# ],
|
518
|
+
# },
|
519
|
+
# ],
|
520
|
+
# policy_document: "{\"Version\":\"2012-10-17\",\"Id\":\"123\",\"Statement\":[{\"Sid\":\"AllowJohnDoe\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:user/JohnDoe\"},\"Action\":\"s3:GetObject\",\"Resource\":\"*\"}]}",
|
521
|
+
# policy_type: "RESOURCE_POLICY",
|
522
|
+
# })
|
523
|
+
#
|
524
|
+
# resp.to_h outputs the following:
|
525
|
+
# {
|
526
|
+
# message: "The policy document does not grant access to perform the listed actions or resources.",
|
527
|
+
# result: "PASS",
|
528
|
+
# }
|
529
|
+
#
|
530
|
+
# @example Example: Passing check. Restrictive S3 Bucket resource policy.
|
531
|
+
#
|
532
|
+
# resp = client.check_access_not_granted({
|
533
|
+
# access: [
|
534
|
+
# {
|
535
|
+
# resources: [
|
536
|
+
# "arn:aws:s3:::sensitive-bucket/*",
|
537
|
+
# ],
|
538
|
+
# },
|
539
|
+
# ],
|
540
|
+
# policy_document: "{\"Version\":\"2012-10-17\",\"Id\":\"123\",\"Statement\":[{\"Sid\":\"AllowJohnDoe\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:user/JohnDoe\"},\"Action\":\"s3:PutObject\",\"Resource\":\"arn:aws:s3:::non-sensitive-bucket/*\"}]}",
|
541
|
+
# policy_type: "RESOURCE_POLICY",
|
542
|
+
# })
|
543
|
+
#
|
544
|
+
# resp.to_h outputs the following:
|
545
|
+
# {
|
546
|
+
# message: "The policy document does not grant access to perform the listed actions or resources.",
|
547
|
+
# result: "PASS",
|
548
|
+
# }
|
549
|
+
#
|
550
|
+
# @example Example: Failing check. Permissive S3 Bucket resource policy.
|
551
|
+
#
|
552
|
+
# resp = client.check_access_not_granted({
|
553
|
+
# access: [
|
554
|
+
# {
|
555
|
+
# resources: [
|
556
|
+
# "arn:aws:s3:::my-bucket/*",
|
557
|
+
# ],
|
558
|
+
# },
|
559
|
+
# ],
|
560
|
+
# policy_document: "{\"Version\":\"2012-10-17\",\"Id\":\"123\",\"Statement\":[{\"Sid\":\"AllowJohnDoe\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:user/JohnDoe\"},\"Action\":\"s3:PutObject\",\"Resource\":\"arn:aws:s3:::my-bucket/*\"}]}",
|
561
|
+
# policy_type: "RESOURCE_POLICY",
|
562
|
+
# })
|
563
|
+
#
|
564
|
+
# resp.to_h outputs the following:
|
565
|
+
# {
|
566
|
+
# message: "The policy document grants access to perform one or more of the listed actions or resources.",
|
567
|
+
# reasons: [
|
568
|
+
# {
|
569
|
+
# description: "One or more of the listed actions or resources in the statement with sid: AllowJohnDoe.",
|
570
|
+
# statement_id: "AllowJohnDoe",
|
571
|
+
# statement_index: 0,
|
572
|
+
# },
|
573
|
+
# ],
|
574
|
+
# result: "FAIL",
|
575
|
+
# }
|
576
|
+
#
|
501
577
|
# @example Request syntax with placeholder values
|
502
578
|
#
|
503
579
|
# resp = client.check_access_not_granted({
|
504
580
|
# policy_document: "AccessCheckPolicyDocument", # required
|
505
581
|
# access: [ # required
|
506
582
|
# {
|
507
|
-
# actions: ["Action"],
|
583
|
+
# actions: ["Action"],
|
584
|
+
# resources: ["Resource"],
|
508
585
|
# },
|
509
586
|
# ],
|
510
587
|
# policy_type: "IDENTITY_POLICY", # required, accepts IDENTITY_POLICY, RESOURCE_POLICY
|
@@ -591,6 +668,85 @@ module Aws::AccessAnalyzer
|
|
591
668
|
req.send_request(options)
|
592
669
|
end
|
593
670
|
|
671
|
+
# Checks whether a resource policy can grant public access to the
|
672
|
+
# specified resource type.
|
673
|
+
#
|
674
|
+
# @option params [required, String] :policy_document
|
675
|
+
# The JSON policy document to evaluate for public access.
|
676
|
+
#
|
677
|
+
# @option params [required, String] :resource_type
|
678
|
+
# The type of resource to evaluate for public access. For example, to
|
679
|
+
# check for public access to Amazon S3 buckets, you can choose
|
680
|
+
# `AWS::S3::Bucket` for the resource type.
|
681
|
+
#
|
682
|
+
# For resource types not supported as valid values, IAM Access Analyzer
|
683
|
+
# will return an error.
|
684
|
+
#
|
685
|
+
# @return [Types::CheckNoPublicAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
686
|
+
#
|
687
|
+
# * {Types::CheckNoPublicAccessResponse#result #result} => String
|
688
|
+
# * {Types::CheckNoPublicAccessResponse#message #message} => String
|
689
|
+
# * {Types::CheckNoPublicAccessResponse#reasons #reasons} => Array<Types::ReasonSummary>
|
690
|
+
#
|
691
|
+
#
|
692
|
+
# @example Example: Passing check. S3 Bucket policy without public access.
|
693
|
+
#
|
694
|
+
# resp = client.check_no_public_access({
|
695
|
+
# policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Bob\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:user/JohnDoe\"},\"Action\":[\"s3:GetObject\"]}]}",
|
696
|
+
# resource_type: "AWS::S3::Bucket",
|
697
|
+
# })
|
698
|
+
#
|
699
|
+
# resp.to_h outputs the following:
|
700
|
+
# {
|
701
|
+
# message: "The resource policy does not grant public access for the given resource type.",
|
702
|
+
# result: "PASS",
|
703
|
+
# }
|
704
|
+
#
|
705
|
+
# @example Example: Failing check. S3 Bucket policy with public access.
|
706
|
+
#
|
707
|
+
# resp = client.check_no_public_access({
|
708
|
+
# policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Bob\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":[\"s3:GetObject\"]}]}",
|
709
|
+
# resource_type: "AWS::S3::Bucket",
|
710
|
+
# })
|
711
|
+
#
|
712
|
+
# resp.to_h outputs the following:
|
713
|
+
# {
|
714
|
+
# message: "The resource policy grants public access for the given resource type.",
|
715
|
+
# reasons: [
|
716
|
+
# {
|
717
|
+
# description: "Public access granted in the following statement with sid: Bob.",
|
718
|
+
# statement_id: "Bob",
|
719
|
+
# statement_index: 0,
|
720
|
+
# },
|
721
|
+
# ],
|
722
|
+
# result: "FAIL",
|
723
|
+
# }
|
724
|
+
#
|
725
|
+
# @example Request syntax with placeholder values
|
726
|
+
#
|
727
|
+
# resp = client.check_no_public_access({
|
728
|
+
# policy_document: "AccessCheckPolicyDocument", # required
|
729
|
+
# resource_type: "AWS::DynamoDB::Table", # required, accepts AWS::DynamoDB::Table, AWS::DynamoDB::Stream, AWS::EFS::FileSystem, AWS::OpenSearchService::Domain, AWS::Kinesis::Stream, AWS::Kinesis::StreamConsumer, AWS::KMS::Key, AWS::Lambda::Function, AWS::S3::Bucket, AWS::S3::AccessPoint, AWS::S3Express::DirectoryBucket, AWS::S3::Glacier, AWS::S3Outposts::Bucket, AWS::S3Outposts::AccessPoint, AWS::SecretsManager::Secret, AWS::SNS::Topic, AWS::SQS::Queue, AWS::IAM::AssumeRolePolicyDocument
|
730
|
+
# })
|
731
|
+
#
|
732
|
+
# @example Response structure
|
733
|
+
#
|
734
|
+
# resp.result #=> String, one of "PASS", "FAIL"
|
735
|
+
# resp.message #=> String
|
736
|
+
# resp.reasons #=> Array
|
737
|
+
# resp.reasons[0].description #=> String
|
738
|
+
# resp.reasons[0].statement_index #=> Integer
|
739
|
+
# resp.reasons[0].statement_id #=> String
|
740
|
+
#
|
741
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckNoPublicAccess AWS API Documentation
|
742
|
+
#
|
743
|
+
# @overload check_no_public_access(params = {})
|
744
|
+
# @param [Hash] params ({})
|
745
|
+
def check_no_public_access(params = {}, options = {})
|
746
|
+
req = build_request(:check_no_public_access, params)
|
747
|
+
req.send_request(options)
|
748
|
+
end
|
749
|
+
|
594
750
|
# Creates an access preview that allows you to preview IAM Access
|
595
751
|
# Analyzer findings for your resource before deploying resource
|
596
752
|
# permissions.
|
@@ -943,6 +1099,56 @@ module Aws::AccessAnalyzer
|
|
943
1099
|
req.send_request(options)
|
944
1100
|
end
|
945
1101
|
|
1102
|
+
# Creates a recommendation for an unused permissions finding.
|
1103
|
+
#
|
1104
|
+
# @option params [required, String] :analyzer_arn
|
1105
|
+
# The [ARN of the analyzer][1] used to generate the finding
|
1106
|
+
# recommendation.
|
1107
|
+
#
|
1108
|
+
#
|
1109
|
+
#
|
1110
|
+
# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
|
1111
|
+
#
|
1112
|
+
# @option params [required, String] :id
|
1113
|
+
# The unique ID for the finding recommendation.
|
1114
|
+
#
|
1115
|
+
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
1116
|
+
#
|
1117
|
+
#
|
1118
|
+
# @example Example: Successfully started generating finding recommendation
|
1119
|
+
#
|
1120
|
+
# resp = client.generate_finding_recommendation({
|
1121
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1122
|
+
# id: "finding-id",
|
1123
|
+
# })
|
1124
|
+
#
|
1125
|
+
# resp.to_h outputs the following:
|
1126
|
+
# {
|
1127
|
+
# }
|
1128
|
+
#
|
1129
|
+
# @example Example: Failed field validation for id value
|
1130
|
+
#
|
1131
|
+
# resp = client.generate_finding_recommendation({
|
1132
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1133
|
+
# id: "!",
|
1134
|
+
# })
|
1135
|
+
#
|
1136
|
+
# @example Request syntax with placeholder values
|
1137
|
+
#
|
1138
|
+
# resp = client.generate_finding_recommendation({
|
1139
|
+
# analyzer_arn: "AnalyzerArn", # required
|
1140
|
+
# id: "GenerateFindingRecommendationRequestIdString", # required
|
1141
|
+
# })
|
1142
|
+
#
|
1143
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GenerateFindingRecommendation AWS API Documentation
|
1144
|
+
#
|
1145
|
+
# @overload generate_finding_recommendation(params = {})
|
1146
|
+
# @param [Hash] params ({})
|
1147
|
+
def generate_finding_recommendation(params = {}, options = {})
|
1148
|
+
req = build_request(:generate_finding_recommendation, params)
|
1149
|
+
req.send_request(options)
|
1150
|
+
end
|
1151
|
+
|
946
1152
|
# Retrieves information about an access preview for the specified
|
947
1153
|
# analyzer.
|
948
1154
|
#
|
@@ -1225,6 +1431,151 @@ module Aws::AccessAnalyzer
|
|
1225
1431
|
req.send_request(options)
|
1226
1432
|
end
|
1227
1433
|
|
1434
|
+
# Retrieves information about a finding recommendation for the specified
|
1435
|
+
# analyzer.
|
1436
|
+
#
|
1437
|
+
# @option params [required, String] :analyzer_arn
|
1438
|
+
# The [ARN of the analyzer][1] used to generate the finding
|
1439
|
+
# recommendation.
|
1440
|
+
#
|
1441
|
+
#
|
1442
|
+
#
|
1443
|
+
# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
|
1444
|
+
#
|
1445
|
+
# @option params [required, String] :id
|
1446
|
+
# The unique ID for the finding recommendation.
|
1447
|
+
#
|
1448
|
+
# @option params [Integer] :max_results
|
1449
|
+
# The maximum number of results to return in the response.
|
1450
|
+
#
|
1451
|
+
# @option params [String] :next_token
|
1452
|
+
# A token used for pagination of results returned.
|
1453
|
+
#
|
1454
|
+
# @return [Types::GetFindingRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1455
|
+
#
|
1456
|
+
# * {Types::GetFindingRecommendationResponse#started_at #started_at} => Time
|
1457
|
+
# * {Types::GetFindingRecommendationResponse#completed_at #completed_at} => Time
|
1458
|
+
# * {Types::GetFindingRecommendationResponse#next_token #next_token} => String
|
1459
|
+
# * {Types::GetFindingRecommendationResponse#error #error} => Types::RecommendationError
|
1460
|
+
# * {Types::GetFindingRecommendationResponse#resource_arn #resource_arn} => String
|
1461
|
+
# * {Types::GetFindingRecommendationResponse#recommended_steps #recommended_steps} => Array<Types::RecommendedStep>
|
1462
|
+
# * {Types::GetFindingRecommendationResponse#recommendation_type #recommendation_type} => String
|
1463
|
+
# * {Types::GetFindingRecommendationResponse#status #status} => String
|
1464
|
+
#
|
1465
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
1466
|
+
#
|
1467
|
+
#
|
1468
|
+
# @example Example: Successfully fetched finding recommendation
|
1469
|
+
#
|
1470
|
+
# resp = client.get_finding_recommendation({
|
1471
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1472
|
+
# id: "finding-id",
|
1473
|
+
# max_results: 3,
|
1474
|
+
# next_token: "token",
|
1475
|
+
# })
|
1476
|
+
#
|
1477
|
+
# resp.to_h outputs the following:
|
1478
|
+
# {
|
1479
|
+
# completed_at: Time.parse("2000-01-01T00:00:01Z"),
|
1480
|
+
# recommendation_type: "UnusedPermissionRecommendation",
|
1481
|
+
# recommended_steps: [
|
1482
|
+
# {
|
1483
|
+
# unused_permissions_recommended_step: {
|
1484
|
+
# existing_policy_id: "policy-id",
|
1485
|
+
# recommended_action: "DETACH_POLICY",
|
1486
|
+
# },
|
1487
|
+
# },
|
1488
|
+
# {
|
1489
|
+
# unused_permissions_recommended_step: {
|
1490
|
+
# existing_policy_id: "policy-id",
|
1491
|
+
# recommended_action: "CREATE_POLICY",
|
1492
|
+
# recommended_policy: "policy-content",
|
1493
|
+
# },
|
1494
|
+
# },
|
1495
|
+
# ],
|
1496
|
+
# resource_arn: "arn:aws:iam::111122223333:role/test",
|
1497
|
+
# started_at: Time.parse("2000-01-01T00:00:00Z"),
|
1498
|
+
# status: "SUCCEEDED",
|
1499
|
+
# }
|
1500
|
+
#
|
1501
|
+
# @example Example: In progress finding recommendation
|
1502
|
+
#
|
1503
|
+
# resp = client.get_finding_recommendation({
|
1504
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1505
|
+
# id: "finding-id",
|
1506
|
+
# max_results: 3,
|
1507
|
+
# })
|
1508
|
+
#
|
1509
|
+
# resp.to_h outputs the following:
|
1510
|
+
# {
|
1511
|
+
# recommendation_type: "UnusedPermissionRecommendation",
|
1512
|
+
# resource_arn: "arn:aws:iam::111122223333:role/test",
|
1513
|
+
# started_at: Time.parse("2000-01-01T00:00:00Z"),
|
1514
|
+
# status: "IN_PROGRESS",
|
1515
|
+
# }
|
1516
|
+
#
|
1517
|
+
# @example Example: Failed finding recommendation
|
1518
|
+
#
|
1519
|
+
# resp = client.get_finding_recommendation({
|
1520
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1521
|
+
# id: "finding-id",
|
1522
|
+
# max_results: 3,
|
1523
|
+
# })
|
1524
|
+
#
|
1525
|
+
# resp.to_h outputs the following:
|
1526
|
+
# {
|
1527
|
+
# completed_at: Time.parse("2000-01-01T00:00:01Z"),
|
1528
|
+
# error: {
|
1529
|
+
# code: "SERVICE_ERROR",
|
1530
|
+
# message: "Service error. Please try again.",
|
1531
|
+
# },
|
1532
|
+
# recommendation_type: "UnusedPermissionRecommendation",
|
1533
|
+
# resource_arn: "arn:aws:iam::111122223333:role/test",
|
1534
|
+
# started_at: Time.parse("2000-01-01T00:00:00Z"),
|
1535
|
+
# status: "FAILED",
|
1536
|
+
# }
|
1537
|
+
#
|
1538
|
+
# @example Example: Failed field validation for id value
|
1539
|
+
#
|
1540
|
+
# resp = client.get_finding_recommendation({
|
1541
|
+
# analyzer_arn: "arn:aws:access-analyzer:us-east-1:111122223333:analyzer/a",
|
1542
|
+
# id: "!",
|
1543
|
+
# })
|
1544
|
+
#
|
1545
|
+
# @example Request syntax with placeholder values
|
1546
|
+
#
|
1547
|
+
# resp = client.get_finding_recommendation({
|
1548
|
+
# analyzer_arn: "AnalyzerArn", # required
|
1549
|
+
# id: "GetFindingRecommendationRequestIdString", # required
|
1550
|
+
# max_results: 1,
|
1551
|
+
# next_token: "Token",
|
1552
|
+
# })
|
1553
|
+
#
|
1554
|
+
# @example Response structure
|
1555
|
+
#
|
1556
|
+
# resp.started_at #=> Time
|
1557
|
+
# resp.completed_at #=> Time
|
1558
|
+
# resp.next_token #=> String
|
1559
|
+
# resp.error.code #=> String
|
1560
|
+
# resp.error.message #=> String
|
1561
|
+
# resp.resource_arn #=> String
|
1562
|
+
# resp.recommended_steps #=> Array
|
1563
|
+
# resp.recommended_steps[0].unused_permissions_recommended_step.policy_updated_at #=> Time
|
1564
|
+
# resp.recommended_steps[0].unused_permissions_recommended_step.recommended_action #=> String, one of "CREATE_POLICY", "DETACH_POLICY"
|
1565
|
+
# resp.recommended_steps[0].unused_permissions_recommended_step.recommended_policy #=> String
|
1566
|
+
# resp.recommended_steps[0].unused_permissions_recommended_step.existing_policy_id #=> String
|
1567
|
+
# resp.recommendation_type #=> String, one of "UnusedPermissionRecommendation"
|
1568
|
+
# resp.status #=> String, one of "SUCCEEDED", "FAILED", "IN_PROGRESS"
|
1569
|
+
#
|
1570
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingRecommendation AWS API Documentation
|
1571
|
+
#
|
1572
|
+
# @overload get_finding_recommendation(params = {})
|
1573
|
+
# @param [Hash] params ({})
|
1574
|
+
def get_finding_recommendation(params = {}, options = {})
|
1575
|
+
req = build_request(:get_finding_recommendation, params)
|
1576
|
+
req.send_request(options)
|
1577
|
+
end
|
1578
|
+
|
1228
1579
|
# Retrieves information about the specified finding. GetFinding and
|
1229
1580
|
# GetFindingV2 both use `access-analyzer:GetFinding` in the `Action`
|
1230
1581
|
# element of an IAM policy statement. You must have permission to
|
@@ -2276,7 +2627,7 @@ module Aws::AccessAnalyzer
|
|
2276
2627
|
params: params,
|
2277
2628
|
config: config)
|
2278
2629
|
context[:gem_name] = 'aws-sdk-accessanalyzer'
|
2279
|
-
context[:gem_version] = '1.
|
2630
|
+
context[:gem_version] = '1.52.0'
|
2280
2631
|
Seahorse::Client::Request.new(handlers, context)
|
2281
2632
|
end
|
2282
2633
|
|