를 사용한 IAM Access Analyzer 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용한 IAM Access Analyzer 예제 AWS CLI

다음 코드 예제에서는 IAM Access Analyzer와 AWS Command Line Interface 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 apply-archive-rule을 사용하는 방법을 보여 줍니다.

AWS CLI

아카이브 규칙 기준을 충족하는 기존 결과에 아카이브 규칙을 적용하려면

다음 apply-archive-rule 예제에서는 아카이브 규칙 기준을 충족하는 기존 결과에 아카이브 규칙을 적용합니다.

aws accessanalyzer apply-archive-rule \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/UnusedAccess-ConsoleAnalyzer-organization \ --rule-name MyArchiveRule

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ApplyArchiveRule를 참조하세요.

다음 코드 예시에서는 cancel-policy-generation을 사용하는 방법을 보여 줍니다.

AWS CLI

요청된 정책 생성을 취소하려면

다음 cancel-policy-generation 예제에서는 요청된 정책 생성 작업 ID를 취소합니다.

aws accessanalyzer cancel-policy-generation \ --job-id 923a56b0-ebb8-4e80-8a3c-a11ccfbcd6f2

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

다음 코드 예시에서는 check-access-not-granted을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 액세스가 정책에서 허용되지 않는지 확인하려면

다음 check-access-not-granted 예제에서는 지정된 액세스가 정책에서 허용되지 않는지 확인합니다.

aws accessanalyzer check-access-not-granted \ --policy-document file://myfile.json \ --access actions="s3:DeleteBucket","s3:GetBucketLocation" \ --policy-type IDENTITY_POLICY

myfile.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }

출력:

{ "result": "PASS", "message": "The policy document does not grant access to perform one or more of the listed actions." }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

다음 코드 예시에서는 check-no-new-access을 사용하는 방법을 보여 줍니다.

AWS CLI

기존 정책과 비교할 때 업데이트된 정책에 대해 새 액세스가 허용되는지 확인하려면

다음 check-no-new-access 예제에서는 기존 정책과 비교할 때 업데이트된 정책에 대해 새 액세스가 허용되는지 여부를 확인합니다.

aws accessanalyzer check-no-new-access \ --existing-policy-document file://existing-policy.json \ --new-policy-document file://new-policy.json \ --policy-type IDENTITY_POLICY

existing-policy.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }

new-policy.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }

출력:

{ "result": "FAIL", "message": "The modified permissions grant new access compared to your existing policy.", "reasons": [ { "description": "New access in the statement with index: 0.", "statementIndex": 0 } ] }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

  • API 세부 정보는 AWS CLI 명령 참조CheckNoNewAccess를 참조하세요.

다음 코드 예시에서는 check-no-public-access을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스 정책이 지정된 리소스 유형에 대한 퍼블릭 액세스 권한을 부여할 수 있는지 확인하려면

다음 check-no-public-access 예제에서는 리소스 정책이 지정된 리소스 유형에 대한 퍼블릭 액세스 권한을 부여할 수 있는지 확인합니다.

aws accessanalyzer check-no-public-access \ --policy-document file://check-no-public-access-myfile.json \ --resource-type AWS::S3::Bucket

myfile.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CheckNoPublicAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/JohnDoe" }, "Action": [ "s3:GetObject" ] } ] }

출력:

{ "result": "PASS", "message": "The resource policy does not grant public access for the given resource type." }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

다음 코드 예시에서는 create-access-preview을 사용하는 방법을 보여 줍니다.

AWS CLI

리소스 권한을 배포하기 전에 리소스에 대한 IAM Access Analyzer 결과를 미리 볼 수 있는 액세스 미리 보기를 생성하려면

다음 create-access-preview 예제에서는 AWS 계정에 리소스 권한을 배포하기 전에 리소스에 대한 IAM Access Analyzer 결과를 미리 볼 수 있는 액세스 미리 보기를 생성합니다.

aws accessanalyzer create-access-preview \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --configurations file://myfile.json

myfile.json의 콘텐츠:

{ "arn:aws:s3:::DOC-EXAMPLE-BUCKET": { "s3Bucket": { "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*\"}]}", "bucketPublicAccessBlock": { "ignorePublicAcls": true, "restrictPublicBuckets": true }, "bucketAclGrants": [ { "grantee": { "id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }, "permission": "READ" } ] } } }

출력:

{ "id": "3c65eb13-6ef9-4629-8919-a32043619e6b" }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

다음 코드 예시에서는 create-analyzer을 사용하는 방법을 보여 줍니다.

AWS CLI

분석기를 생성하려면

다음 create-analyzer 예제에서는 AWS 계정에 분석기를 생성합니다.

aws accessanalyzer create-analyzer \ --analyzer-name example \ --type ACCOUNT

출력:

{ "arn": "arn:aws:access-analyzer:us-east-2:111122223333:analyzer/example" }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 결과 시작하기를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateAnalyzer를 참조하세요.

다음 코드 예시에서는 create-archive-rule을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에 대한 아카이브 규칙을 생성하려면

다음 create-archive-rule 예제에서는 AWS 계정에서 지정된 분석기에 대한 아카이브 규칙을 생성합니다.

aws accessanalyzer create-archive-rule \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --rule-name MyRule \ --filter '{"resource": {"contains": ["Cognito"]}, "resourceType": {"eq": ["AWS::IAM::Role"]}}'

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateArchiveRule를 참조하세요.

다음 코드 예시에서는 delete-analyzer을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기를 삭제하려면

다음 delete-analyzer 예제에서는 AWS 계정에서 지정된 분석기를 삭제합니다.

aws accessanalyzer delete-analyzer \ --analyzer-name example

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DeleteAnalyzer를 참조하세요.

다음 코드 예시에서는 delete-archive-rule을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 아카이브 규칙을 삭제하려면

다음 delete-archive-rule 예제에서는 AWS 계정에서 지정된 아카이브 규칙을 삭제합니다.

aws accessanalyzer delete-archive-rule \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --rule-name MyRule

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DeleteArchiveRule를 참조하세요.

다음 코드 예시에서는 get-access-preview을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기의 액세스 미리 보기에 대한 정보를 검색하려면

다음 get-access-preview 예제에서는 AWS 계정에서 지정된 분석기의 액세스 미리 보기에 대한 정보를 검색합니다.

aws accessanalyzer get-access-preview \ --access-preview-id 3c65eb13-6ef9-4629-8919-a32043619e6b \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account

출력:

{ "accessPreview": { "id": "3c65eb13-6ef9-4629-8919-a32043619e6b", "analyzerArn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account", "configurations": { "arn:aws:s3:::DOC-EXAMPLE-BUCKET": { "s3Bucket": { "bucketPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\"]},\"Action\":[\"s3:PutObject\",\"s3:PutObjectAcl\"],\"Resource\":\"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*\"}]}", "bucketAclGrants": [ { "permission": "READ", "grantee": { "id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" } } ], "bucketPublicAccessBlock": { "ignorePublicAcls": true, "restrictPublicBuckets": true } } } }, "createdAt": "2024-02-17T00:18:44+00:00", "status": "COMPLETED" } }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

  • API 세부 정보는 AWS CLI 명령 참조GetAccessPreview를 참조하세요.

다음 코드 예시에서는 get-analyzed-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

분석된 리소스에 대한 정보를 검색하려면

다음 get-analyzed-resource 예제에서는 AWS 계정에서 분석된 리소스에 대한 정보를 검색합니다.

aws accessanalyzer get-analyzed-resource \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --resource-arn arn:aws:s3:::DOC-EXAMPLE-BUCKET

출력:

{ "resource": { "analyzedAt": "2024-02-15T18:01:53.002000+00:00", "isPublic": false, "resourceArn": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "resourceOwnerAccount": "111122223333", "resourceType": "AWS::S3::Bucket" } }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

다음 코드 예시에서는 get-analyzer을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에 대한 정보를 검색하려면

다음 get-analyzer 예제에서는 AWS 계정에서 지정된 분석기에 대한 정보를 검색합니다.

aws accessanalyzer get-analyzer \ --analyzer-name ConsoleAnalyzer-account

출력:

{ "analyzer": { "arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account", "createdAt": "2019-12-03T07:28:17+00:00", "lastResourceAnalyzed": "arn:aws:sns:us-west-2:111122223333:config-topic", "lastResourceAnalyzedAt": "2024-02-15T18:01:53.003000+00:00", "name": "ConsoleAnalyzer-account", "status": "ACTIVE", "tags": { "auto-delete": "no" }, "type": "ACCOUNT" } }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetAnalyzer를 참조하세요.

다음 코드 예시에서는 get-archive-rule을 사용하는 방법을 보여 줍니다.

AWS CLI

아카이브 규칙에 대한 정보를 검색하려면

다음 get-archive-rule 예제에서는 AWS 계정의 아카이브 규칙에 대한 정보를 검색합니다.

aws accessanalyzer get-archive-rule \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --rule-name MyArchiveRule

출력:

{ "archiveRule": { "createdAt": "2024-02-15T00:49:27+00:00", "filter": { "resource": { "contains": [ "Cognito" ] }, "resourceType": { "eq": [ "AWS::IAM::Role" ] } }, "ruleName": "MyArchiveRule", "updatedAt": "2024-02-15T00:49:27+00:00" } }

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetArchiveRule를 참조하세요.

다음 코드 예시에서는 get-finding-v2을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 결과에 대한 정보를 검색하려면

다음 get-finding-v2 예제는 AWS 계정에서 지정된 결과에 대한 정보를 제한합니다.

aws accessanalyzer get-finding-v2 \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-organization \ --id 0910eedb-381e-4e95-adda-0d25c19e6e90

출력:

{ "findingDetails": [ { "externalAccessDetails": { "action": [ "sts:AssumeRoleWithWebIdentity" ], "condition": { "cognito-identity.amazonaws.com:aud": "us-west-2:EXAMPLE0-0000-0000-0000-000000000000" }, "isPublic": false, "principal": { "Federated": "cognito-identity.amazonaws.com" } } } ], "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolAuth_Role", "status": "ACTIVE", "error": null, "createdAt": "2021-02-26T21:17:50.905000+00:00", "resourceType": "AWS::IAM::Role", "findingType": "ExternalAccess", "resourceOwnerAccount": "111122223333", "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "id": "0910eedb-381e-4e95-adda-0d25c19e6e90", "updatedAt": "2021-02-26T21:17:50.905000+00:00" }

자세한 내용은 AWS IAM 사용 설명서결과 검토를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetFindingV2를 참조하세요.

다음 코드 예시에서는 get-finding을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 결과에 대한 정보를 검색하려면

다음 get-finding 예제는 AWS 계정에서 지정된 결과에 대한 정보를 제한합니다.

aws accessanalyzer get-finding \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-organization \ --id 0910eedb-381e-4e95-adda-0d25c19e6e90

출력:

{ "finding": { "id": "0910eedb-381e-4e95-adda-0d25c19e6e90", "principal": { "Federated": "cognito-identity.amazonaws.com" }, "action": [ "sts:AssumeRoleWithWebIdentity" ], "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolAuth_Role", "isPublic": false, "resourceType": "AWS::IAM::Role", "condition": { "cognito-identity.amazonaws.com:aud": "us-west-2:EXAMPLE0-0000-0000-0000-000000000000" }, "createdAt": "2021-02-26T21:17:50.905000+00:00", "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "updatedAt": "2021-02-26T21:17:50.905000+00:00", "status": "ACTIVE", "resourceOwnerAccount": "111122223333" } }

자세한 내용은 AWS IAM 사용 설명서결과 검토를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetFinding를 참조하세요.

다음 코드 예시에서는 get-generated-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

`StartPolicyGeneration` API를 사용하여 생성된 정책을 검색하려면

다음 get-generated-policy 예제에서는 AWS 계정에서 StartPolicyGeneration APIWord를 사용하여 생성된 정책을 검색합니다.

aws accessanalyzer get-generated-policy \ --job-id c557dc4a-0338-4489-95dd-739014860ff9

출력:

{ "generatedPolicyResult": { "generatedPolicies": [ { "policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"SupportedServiceSid0\",\"Effect\":\"Allow\",\"Action\":[\"access-analyzer:GetAnalyzer\",\"access-analyzer:ListAnalyzers\",\"access-analyzer:ListArchiveRules\",\"access-analyzer:ListFindings\",\"cloudtrail:DescribeTrails\",\"cloudtrail:GetEventDataStore\",\"cloudtrail:GetEventSelectors\",\"cloudtrail:GetInsightSelectors\",\"cloudtrail:GetTrailStatus\",\"cloudtrail:ListChannels\",\"cloudtrail:ListEventDataStores\",\"cloudtrail:ListQueries\",\"cloudtrail:ListTags\",\"cloudtrail:LookupEvents\",\"ec2:DescribeRegions\",\"iam:GetAccountSummary\",\"iam:GetOpenIDConnectProvider\",\"iam:GetRole\",\"iam:ListAccessKeys\",\"iam:ListAccountAliases\",\"iam:ListOpenIDConnectProviders\",\"iam:ListRoles\",\"iam:ListSAMLProviders\",\"kms:ListAliases\",\"s3:GetBucketLocation\",\"s3:ListAllMyBuckets\"],\"Resource\":\"*\"}]}" } ], "properties": { "cloudTrailProperties": { "endTime": "2024-02-14T22:44:40+00:00", "startTime": "2024-02-13T00:30:00+00:00", "trailProperties": [ { "allRegions": true, "cloudTrailArn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/my-trail", "regions": [] } ] }, "isComplete": false, "principalArn": "arn:aws:iam::111122223333:role/Admin" } }, "jobDetails": { "completedOn": "2024-02-14T22:47:01+00:00", "jobId": "c557dc4a-0338-4489-95dd-739014860ff9", "startedOn": "2024-02-14T22:44:41+00:00", "status": "SUCCEEDED" } }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

다음 코드 예시에서는 list-access-preview-findings을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 액세스 미리 보기에서 생성된 액세스 미리 보기 조사 결과 목록을 검색하려면

다음 list-access-preview-findings 예제에서는 AWS 계정의 지정된 액세스 미리 보기에서 생성된 액세스 미리 보기 조사 결과 목록을 검색합니다.

aws accessanalyzer list-access-preview-findings \ --access-preview-id 3c65eb13-6ef9-4629-8919-a32043619e6b \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account

출력:

{ "findings": [ { "id": "e22fc158-1c87-4c32-9464-e7f405ce8d74", "principal": { "AWS": "111122223333" }, "action": [ "s3:PutObject", "s3:PutObjectAcl" ], "condition": {}, "resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "isPublic": false, "resourceType": "AWS::S3::Bucket", "createdAt": "2024-02-17T00:18:46+00:00", "changeType": "NEW", "status": "ACTIVE", "resourceOwnerAccount": "111122223333", "sources": [ { "type": "POLICY" } ] } ] }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

다음 코드 예시에서는 list-access-previews을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에 대한 액세스 미리 보기 목록을 검색하려면

다음 list-access-previews 예제에서는 AWS 계정에서 지정된 분석기에 대한 액세스 미리 보기 목록을 검색합니다.

aws accessanalyzer list-access-previews \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account

출력:

{ "accessPreviews": [ { "id": "3c65eb13-6ef9-4629-8919-a32043619e6b", "analyzerArn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account", "createdAt": "2024-02-17T00:18:44+00:00", "status": "COMPLETED" } ] }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer APIs로 액세스 미리 보기를 참조하세요. AWS IAM

다음 코드 예시에서는 list-analyzed-resources을 사용하는 방법을 보여 줍니다.

AWS CLI

사용 가능한 위젯을 나열하려면

다음 list-analyzed-resources 예제에서는 AWS 계정에서 사용 가능한 위젯을 나열합니다.

aws accessanalyzer list-analyzed-resources \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --resource-type AWS::IAM::Role

출력:

{ "analyzedResources": [ { "resourceArn": "arn:aws:sns:us-west-2:111122223333:Validation-Email", "resourceOwnerAccount": "111122223333", "resourceType": "AWS::SNS::Topic" }, { "resourceArn": "arn:aws:sns:us-west-2:111122223333:admin-alerts", "resourceOwnerAccount": "111122223333", "resourceType": "AWS::SNS::Topic" }, { "resourceArn": "arn:aws:sns:us-west-2:111122223333:config-topic", "resourceOwnerAccount": "111122223333", "resourceType": "AWS::SNS::Topic" }, { "resourceArn": "arn:aws:sns:us-west-2:111122223333:inspector-topic", "resourceOwnerAccount": "111122223333", "resourceType": "AWS::SNS::Topic" } ] }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

다음 코드 예시에서는 list-analyzers을 사용하는 방법을 보여 줍니다.

AWS CLI

분석기 목록을 검색하려면

다음 list-analyzers 예제에서는 AWS 계정의 분석기 목록을 검색합니다.

aws accessanalyzer list-analyzers

출력:

{ "analyzers": [ { "arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/UnusedAccess-ConsoleAnalyzer-organization", "createdAt": "2024-02-15T00:46:40+00:00", "name": "UnusedAccess-ConsoleAnalyzer-organization", "status": "ACTIVE", "tags": { "auto-delete": "no" }, "type": "ORGANIZATION_UNUSED_ACCESS" }, { "arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-organization", "createdAt": "2020-04-25T07:43:28+00:00", "lastResourceAnalyzed": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "lastResourceAnalyzedAt": "2024-02-15T21:51:56.517000+00:00", "name": "ConsoleAnalyzer-organization", "status": "ACTIVE", "tags": { "auto-delete": "no" }, "type": "ORGANIZATION" }, { "arn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account", "createdAt": "2019-12-03T07:28:17+00:00", "lastResourceAnalyzed": "arn:aws:sns:us-west-2:111122223333:config-topic", "lastResourceAnalyzedAt": "2024-02-15T18:01:53.003000+00:00", "name": "ConsoleAnalyzer-account", "status": "ACTIVE", "tags": { "auto-delete": "no" }, "type": "ACCOUNT" } ] }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListAnalyzers를 참조하세요.

다음 코드 예시에서는 list-archive-rules을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에 대해 생성된 아카이브 규칙 목록을 검색하려면

다음 list-archive-rules 예제에서는 AWS 계정에서 지정된 분석기에 대해 생성된 아카이브 규칙 목록을 검색합니다.

aws accessanalyzer list-archive-rules \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization

출력:

{ "archiveRules": [ { "createdAt": "2024-02-15T00:49:27+00:00", "filter": { "resource": { "contains": [ "Cognito" ] }, "resourceType": { "eq": [ "AWS::IAM::Role" ] } }, "ruleName": "MyArchiveRule", "updatedAt": "2024-02-15T00:49:27+00:00" }, { "createdAt": "2024-02-15T23:27:45+00:00", "filter": { "findingType": { "eq": [ "UnusedIAMUserAccessKey" ] } }, "ruleName": "ArchiveRule-56125a39-e517-4ff8-afb1-ef06f58db612", "updatedAt": "2024-02-15T23:27:45+00:00" } ] }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListArchiveRules를 참조하세요.

다음 코드 예시에서는 list-findings-v2을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에서 생성된 조사 결과 목록을 검색하려면

다음 list-findings-v2 예제에서는 AWS 계정의 지정된 분석기에서 생성된 조사 결과 목록을 검색합니다. 이 예제에서는 이름이를 포함하는 IAM 역할만 포함하도록 결과를 필터링합니다Cognito.

aws accessanalyzer list-findings-v2 \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --filter '{"resource": {"contains": ["Cognito"]}, "resourceType": {"eq": ["AWS::IAM::Role"]}}'

출력:

{ "findings": [ { "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "createdAt": "2021-02-26T21:17:24.710000+00:00", "id": "597f3bc2-3adc-4c18-9879-5c4b23485e46", "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolUnauth_Role", "resourceType": "AWS::IAM::Role", "resourceOwnerAccount": "111122223333", "status": "ACTIVE", "updatedAt": "2021-02-26T21:17:24.710000+00:00", "findingType": "ExternalAccess" }, { "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "createdAt": "2021-02-26T21:17:50.905000+00:00", "id": "ce0e221a-85b9-4d52-91ff-d7678075442f", "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolAuth_Role", "resourceType": "AWS::IAM::Role", "resourceOwnerAccount": "111122223333", "status": "ACTIVE", "updatedAt": "2021-02-26T21:17:50.905000+00:00", "findingType": "ExternalAccess" } ] }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListFindingsV2를 참조하세요.

다음 코드 예시에서는 list-findings을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 분석기에서 생성된 결과 목록을 검색하려면

다음 list-findings 예제에서는 AWS 계정의 지정된 분석기에서 생성된 조사 결과 목록을 검색합니다. 이 예제에서는 이름이를 포함하는 IAM 역할만 포함하도록 결과를 필터링합니다Cognito.

aws accessanalyzer list-findings \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --filter '{"resource": {"contains": ["Cognito"]}, "resourceType": {"eq": ["AWS::IAM::Role"]}}'

출력:

{ "findings": [ { "id": "597f3bc2-3adc-4c18-9879-5c4b23485e46", "principal": { "Federated": "cognito-identity.amazonaws.com" }, "action": [ "sts:AssumeRoleWithWebIdentity" ], "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolUnauth_Role", "isPublic": false, "resourceType": "AWS::IAM::Role", "condition": { "cognito-identity.amazonaws.com:aud": "us-west-2:EXAMPLE0-0000-0000-0000-000000000000" }, "createdAt": "2021-02-26T21:17:24.710000+00:00", "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "updatedAt": "2021-02-26T21:17:24.710000+00:00", "status": "ACTIVE", "resourceOwnerAccount": "111122223333" }, { "id": "ce0e221a-85b9-4d52-91ff-d7678075442f", "principal": { "Federated": "cognito-identity.amazonaws.com" }, "action": [ "sts:AssumeRoleWithWebIdentity" ], "resource": "arn:aws:iam::111122223333:role/Cognito_testpoolAuth_Role", "isPublic": false, "resourceType": "AWS::IAM::Role", "condition": { "cognito-identity.amazonaws.com:aud": "us-west-2:EXAMPLE0-0000-0000-0000-000000000000" }, "createdAt": "2021-02-26T21:17:50.905000+00:00", "analyzedAt": "2024-02-16T18:17:47.888000+00:00", "updatedAt": "2021-02-26T21:17:50.905000+00:00", "status": "ACTIVE", "resourceOwnerAccount": "111122223333" } ] }

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListFindings를 참조하세요.

다음 코드 예시에서는 list-policy-generations을 사용하는 방법을 보여 줍니다.

AWS CLI

지난 7일 동안 요청된 모든 정책 생성을 나열하려면

다음 list-policy-generations 예제에서는 AWS 계정에서 지난 7일 동안 요청된 모든 정책 생성을 나열합니다.

aws accessanalyzer list-policy-generations

출력:

{ "policyGenerations": [ { "completedOn": "2024-02-14T23:43:38+00:00", "jobId": "923a56b0-ebb8-4e80-8a3c-a11ccfbcd6f2", "principalArn": "arn:aws:iam::111122223333:role/Admin", "startedOn": "2024-02-14T23:43:02+00:00", "status": "CANCELED" }, { "completedOn": "2024-02-14T22:47:01+00:00", "jobId": "c557dc4a-0338-4489-95dd-739014860ff9", "principalArn": "arn:aws:iam::111122223333:role/Admin", "startedOn": "2024-02-14T22:44:41+00:00", "status": "SUCCEEDED" } ] }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

다음 코드 예시에서는 list-tags-for-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 리소스에 적용된 태그 목록을 검색하려면

다음 list-tags-for-resource 예제에서는 AWS 계정의 지정된 리소스에 적용된 태그 목록을 검색합니다.

aws accessanalyzer list-tags-for-resource \ --resource-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account

출력:

{ "tags": { "Zone-of-trust": "Account", "Name": "ConsoleAnalyzer" } }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

다음 코드 예시에서는 start-policy-generation을 사용하는 방법을 보여 줍니다.

AWS CLI

정책 생성 요청을 시작하려면

다음 start-policy-generation 예제에서는 AWS 계정에서 정책 생성 요청을 시작합니다.

aws accessanalyzer start-policy-generation \ --policy-generation-details '{"principalArn":"arn:aws:iam::111122223333:role/Admin"}' \ --cloud-trail-details file://myfile.json

myfile.json의 콘텐츠:

{ "accessRole": "arn:aws:iam::111122223333:role/service-role/AccessAnalyzerMonitorServiceRole", "startTime": "2024-02-13T00:30:00Z", "trails": [ { "allRegions": true, "cloudTrailArn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/my-trail" } ] }

출력:

{ "jobId": "c557dc4a-0338-4489-95dd-739014860ff9" }

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

다음 코드 예시에서는 start-resource-scan을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 리소스에 적용된 정책 스캔을 즉시 시작하려면

다음 start-resource-scan 예제에서는 AWS 계정의 지정된 리소스에 적용된 정책의 스캔을 mmediately 시작합니다.

aws accessanalyzer start-resource-scan \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --resource-arn arn:aws:iam::111122223333:role/Cognito_testpoolAuth_Role

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 IAM 사용 설명서의 Word Access Analyzer 정책 생성을 참조하세요. AWS IAM

  • API 세부 정보는 AWS CLI 명령 참조StartResourceScan를 참조하세요.

다음 코드 예시에서는 tag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 리소스에 태그를 추가하려면

다음 tag-resource 예제에서는 AWS 계정의 지정된 리소스에 태그를 추가합니다.

aws accessanalyzer tag-resource \ --resource-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --tags Environment=dev,Purpose=testing

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조TagResource를 참조하세요.

다음 코드 예시에서는 untag-resource을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 리소스에서 태그를 제거하려면

다음 untag-resource 예제에서는 AWS 계정의 지정된 리소스에서 태그를 제거합니다.

aws accessanalyzer untag-resource \ --resource-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --tag-keys Environment Purpose

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UntagResource를 참조하세요.

다음 코드 예시에서는 update-archive-rule을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 아카이브 규칙의 기준 및 값을 업데이트하려면

다음 update-archive-rule 예제에서는 AWS 계정에서 지정된 아카이브 규칙의 기준과 값을 업데이트합니다.

aws accessanalyzer update-archive-rule \ --analyzer-name UnusedAccess-ConsoleAnalyzer-organization \ --rule-name MyArchiveRule \ --filter '{"resource": {"contains": ["Cognito"]}, "resourceType": {"eq": ["AWS::IAM::Role"]}}'

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서아카이브 규칙을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UpdateArchiveRule를 참조하세요.

다음 코드 예시에서는 update-findings을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 조사 결과의 상태를 업데이트하려면

다음 update-findings 예제에서는 AWS 계정에서 지정된 조사 결과의 상태를 업데이트합니다.

aws accessanalyzer update-findings \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/UnusedAccess-ConsoleAnalyzer-organization \ --ids 4f319ac3-2e0c-4dc4-bf51-7013a086b6ae 780d586a-2cce-4f72-aff6-359d450e7500 \ --status ARCHIVED

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 AWS IAM 사용 설명서AWS Identity and Access Management Access Analyzer 사용을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조UpdateFindings를 참조하세요.

다음 코드 예시에서는 validate-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

정책 검증을 요청하고 조사 결과 목록을 반환하려면

다음 validate-policy 예제에서는 정책의 검증을 요청하고 조사 결과 목록을 반환합니다. 예제의 정책은 웹 ID 페더레이션에 사용되는 Amazon Cognito 역할에 대한 역할 신뢰 정책입니다. 신뢰 정책에서 생성된 조사 결과는 잘못된 수임 역할 작업이 사용되므로 빈 Sid 요소 값 및 일치하지 않는 정책 보안 주체인와 관련이 있습니다sts:AssumeRole. Cognito와 함께 사용할 올바른 역할 가정 작업은 입니다sts:AssumeRoleWithWebIdentity.

aws accessanalyzer validate-policy \ --policy-document file://myfile.json \ --policy-type RESOURCE_POLICY

myfile.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2_EXAMPLE" } } } ] }

출력:

{ "findings": [ { "findingDetails": "Add a value to the empty string in the Sid element.", "findingType": "SUGGESTION", "issueCode": "EMPTY_SID_VALUE", "learnMoreLink": "https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-suggestion-empty-sid-value", "locations": [ { "path": [ { "value": "Statement" }, { "index": 0 }, { "value": "Sid" } ], "span": { "end": { "column": 21, "line": 5, "offset": 81 }, "start": { "column": 19, "line": 5, "offset": 79 } } } ] }, { "findingDetails": "The sts:AssumeRole action is invalid with the following principal(s): cognito-identity.amazonaws.com. Use a SAML provider principal with the sts:AssumeRoleWithSAML action or use an OIDC provider principal with the sts:AssumeRoleWithWebIdentity action. Ensure the provider is Federated if you use either of the two options.", "findingType": "ERROR", "issueCode": "MISMATCHED_ACTION_FOR_PRINCIPAL", "learnMoreLink": "https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-error-mismatched-action-for-principal", "locations": [ { "path": [ { "value": "Statement" }, { "index": 0 }, { "value": "Action" }, { "index": 0 } ], "span": { "end": { "column": 32, "line": 11, "offset": 274 }, "start": { "column": 16, "line": 11, "offset": 258 } } }, { "path": [ { "value": "Statement" }, { "index": 0 }, { "value": "Principal" }, { "value": "Federated" } ], "span": { "end": { "column": 61, "line": 8, "offset": 202 }, "start": { "column": 29, "line": 8, "offset": 170 } } } ] }, { "findingDetails": "The following actions: sts:TagSession are not supported by the condition key cognito-identity.amazonaws.com:aud. The condition will not be evaluated for these actions. We recommend that you move these actions to a different statement without this condition key.", "findingType": "ERROR", "issueCode": "UNSUPPORTED_ACTION_FOR_CONDITION_KEY", "learnMoreLink": "https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-error-unsupported-action-for-condition-key", "locations": [ { "path": [ { "value": "Statement" }, { "index": 0 }, { "value": "Action" }, { "index": 1 } ], "span": { "end": { "column": 32, "line": 12, "offset": 308 }, "start": { "column": 16, "line": 12, "offset": 292 } } }, { "path": [ { "value": "Statement" }, { "index": 0 }, { "value": "Condition" }, { "value": "StringEquals" }, { "value": "cognito-identity.amazonaws.com:aud" } ], "span": { "end": { "column": 79, "line": 16, "offset": 464 }, "start": { "column": 58, "line": 16, "offset": 443 } } } ] } ] }

자세한 내용은 AWS IAM 사용 설명서정책 검증 확인을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ValidatePolicy를 참조하세요.