Ejemplos del Analizador de acceso de IAM que utilizan la AWS CLI - AWS Command Line Interface

Ejemplos del Analizador de acceso de IAM que utilizan la AWS CLI

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar situaciones comunes usando la AWS Command Line Interface con el Analizador de acceso de IAM.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar apply-archive-rule.

AWS CLI

Aplicación de una regla de archivado a los resultados existentes que cumplan los criterios de la regla de archivado

En el siguiente ejemplo de apply-archive-rule, se aplica una regla de archivado a los resultados existentes que cumplen los criterios de la regla de archivado.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener más información sobre la API, consulte ApplyArchiveRule en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar cancel-policy-generation.

AWS CLI

Cancelación de la generación de políticas solicitada

En el siguiente ejemplo de cancel-policy-generation, se cancela el ID de trabajo de la generación de políticas solicitada.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CancelPolicyGeneration en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar check-access-not-granted.

AWS CLI

Comprobación de si una política no permite el acceso especificado

En el siguiente ejemplo de check-access-not-granted, se comprueba si una política no permite el acceso especificado.

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

Contenido de myfile.json:

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

Salida:

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

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CheckAccessNotGranted en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar check-no-new-access.

AWS CLI

Comprobación de si se permite un nuevo acceso a una política actualizada al compararla con la política existente

En el siguiente ejemplo de check-no-new-access, se comprueba si se permite un nuevo acceso a una política actualizada al compararla con la política existente.

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

Contenido de existing-policy.json:

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

Contenido de new-policy.json:

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

Salida:

{ "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 } ] }

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CheckNoNewAccess en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar check-no-public-access.

AWS CLI

Comprobación de si una política de recursos puede conceder acceso público al tipo de recurso especificado

En el siguiente ejemplo de check-no-public-access, se comprueba si una política de recursos puede conceder acceso público al tipo de recurso especificado.

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

Contenido de myfile.json:

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

Salida:

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

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CheckNoPublicAccess en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-access-preview.

AWS CLI

Creación de una vista previa del acceso que le permita obtener una vista previa de los resultados del analizador de acceso de IAM para su recurso antes de implementar los permisos del recurso

En el siguiente ejemplo de create-access-preview, se crea una vista previa del acceso que le permite obtener una vista previa de los resultados del Analizador de acceso de IAM para su recurso antes de implementar los permisos de recursos en la cuenta de AWS.

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

Contenido de myfile.json:

{ "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-bucket/*\"}]}", "bucketPublicAccessBlock": { "ignorePublicAcls": true, "restrictPublicBuckets": true }, "bucketAclGrants": [ { "grantee": { "id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" }, "permission": "READ" } ] } } }

Salida:

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

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CreateAccessPreview en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-analyzer.

AWS CLI

Cómo crear un analizador

En el siguiente ejemplo de create-analyzer, se crea un analizador en la cuenta de AWS.

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

Salida:

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

Para obtener más información, consulte Introducción a los resultados de AWS Identity and Access Management Access Analyzer de la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CreateAnalyzer en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-archive-rule.

AWS CLI

Creación de una regla de archivado para el analizador especificado

En el siguiente ejemplo de create-archive-rule, se crea una regla de archivado para el analizador especificado en la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte CreateArchiveRule en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-analyzer.

AWS CLI

Eliminación del analizador especificado

En el siguiente ejemplo de delete-analyzer, se elimina el analizador especificado de la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte DeleteAnalyzer en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-archive-rule.

AWS CLI

Eliminación de la regla de archivado especificada

En el siguiente ejemplo de delete-archive-rule, se elimina la regla de archivado especificada de la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte DeleteArchiveRule en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-access-preview.

AWS CLI

Recuperación de información sobre una vista previa de acceso del analizador especificado

En el siguiente ejemplo de get-access-preview, se recupera información sobre una vista previa del acceso del analizador especificado en la cuenta de 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

Salida:

{ "accessPreview": { "id": "3c65eb13-6ef9-4629-8919-a32043619e6b", "analyzerArn": "arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account", "configurations": { "arn:aws:s3:::amzn-s3-demo-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:::amzn-s3-demo-bucket/*\"}]}", "bucketAclGrants": [ { "permission": "READ", "grantee": { "id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be" } } ], "bucketPublicAccessBlock": { "ignorePublicAcls": true, "restrictPublicBuckets": true } } } }, "createdAt": "2024-02-17T00:18:44+00:00", "status": "COMPLETED" } }

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte GetAccessPreview en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-analyzed-resource.

AWS CLI

Recuperación de la información sobre un recurso analizado

En el siguiente ejemplo de get-analyzed-resource, se recupera información sobre un recurso que se ha analizado en la cuenta de AWS.

aws accessanalyzer get-analyzed-resource \ --analyzer-arn arn:aws:access-analyzer:us-west-2:111122223333:analyzer/ConsoleAnalyzer-account \ --resource-arn arn:aws:s3:::amzn-s3-demo-bucket

Salida:

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

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte GetAnalyzedResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-analyzer.

AWS CLI

Recuperación de información sobre el analizador especificado

En el siguiente ejemplo de get-analyzer, se devuelve información sobre el analizador especificado en la cuenta de AWS.

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

Salida:

{ "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" } }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte GetAnalyzer en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-archive-rule.

AWS CLI

Recuperación de información sobre una regla de archivado

En el siguiente ejemplo de get-archive-rule, se recupera información sobre una regla de archivado en la cuenta de AWS.

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

Salida:

{ "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" } }

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte GetArchiveRule en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-finding-v2.

AWS CLI

Recuperación de información sobre el resultado especificado

En el siguiente ejemplo de get-finding-v2, se recupera información sobre el resultado especificado en la cuenta de 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

Salida:

{ "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" }

Para obtener más información, consulte Revisión de los resultados en la Guía del usuario de AWS.

  • Para obtener información sobre la API, consulte GetFindingV2 en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-finding.

AWS CLI

Recuperación de información sobre el resultado especificado

En el siguiente ejemplo de get-finding, se recupera información sobre el resultado especificado en la cuenta de AWS.

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

Salida:

{ "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" } }

Para obtener más información, consulte Revisión de los resultados en la Guía del usuario de AWS.

  • Para obtener información sobre la API, consulte GetFinding en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-generated-policy.

AWS CLI

Recuperación de la política generada mediante la API StartPolicyGeneration

En el siguiente ejemplo de get-generated-policy, se recupera la política que se ha generado mediante la API StartPolicyGeneration en la cuenta de AWS.

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

Salida:

{ "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" } }

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte GetGeneratedPolicy en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-access-preview-findings.

AWS CLI

Recuperación de una lista de los resultados de la vista previa de acceso generados por la vista previa de acceso especificada

En el siguiente ejemplo de list-access-preview-findings, se recupera una lista de los resultados de la vista previa de acceso generados por la vista previa de acceso especificada en la cuenta de 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

Salida:

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

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

En el siguiente ejemplo de código, se muestra cómo utilizar list-access-previews.

AWS CLI

Recuperación de una lista de vistas previas de acceso para el analizador especificado

En el siguiente ejemplo de list-access-previews, se recupera una lista de vistas previas de acceso del analizador especificado en la cuenta de AWS.

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

Salida:

{ "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" } ] }

Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListAccessPreviews en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-analyzed-resources.

AWS CLI

Para enumerar los widgets disponibles

En el siguiente ejemplo de list-analyzed-resources, se genera una lista de los widgets disponibles en la cuenta de AWS.

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

Salida:

{ "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" } ] }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListAnalyzedResources en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-analyzers.

AWS CLI

Recuperación de una lista de analizadores

En el siguiente ejemplo de list-analyzers, se obtiene una lista de todos los analizadores de la cuenta de AWS.

aws accessanalyzer list-analyzers

Salida:

{ "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:::amzn-s3-demo-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" } ] }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListAnalyzers en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-archive-rules.

AWS CLI

Recuperación de una lista de reglas de archivado creadas para el analizador especificado

En el siguiente ejemplo de list-archive-rules se recupera una lista de reglas de archivado creadas para el analizador especificado en la cuenta de AWS.

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

Salida:

{ "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" } ] }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListArchiveRules en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-findings-v2.

AWS CLI

Recuperación de una lista de resultados generados por el analizador especificado

En el siguiente ejemplo de list-findings-v2, se recupera una lista de los resultados generados por el analizador especificado en la cuenta de AWS. En este ejemplo, se filtran los resultados para que se incluyan solo los roles de IAM cuyo nombre contenga 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"]}}'

Salida:

{ "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" } ] }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener detalles de la API, consulte ListFindingsV2 en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-findings.

AWS CLI

Recuperación de una lista de resultados generados por el analizador especificado

En el siguiente ejemplo de list-findings, se recupera una lista de los resultados generados por el analizador especificado en la cuenta de AWS. En este ejemplo, se filtran los resultados para que se incluyan solo los roles de IAM cuyo nombre contenga 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"]}}'

Salida:

{ "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" } ] }

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListFindings en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-policy-generations.

AWS CLI

Para enumerar todas las generaciones de políticas solicitadas en los últimos siete días

En el siguiente ejemplo de list-policy-generations, se genera una lista de todas las generaciones de políticas solicitadas en los últimos siete días en la cuenta de AWS.

aws accessanalyzer list-policy-generations

Salida:

{ "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" } ] }

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte ListPolicyGenerations en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-tags-for-resource.

AWS CLI

Recuperación de una lista de etiquetas aplicadas al recurso especificado

En el siguiente ejemplo de list-tags-for-resource, se recupera una lista de todas las etiquetas aplicadas al recurso especificado en la cuenta de AWS.

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

Salida:

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

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para ver los detalles de la API, consulte ListTagsForResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar start-policy-generation.

AWS CLI

Inicio de una solicitud de generación de políticas

En el siguiente ejemplo de start-policy-generation, se inicia una solicitud de generación de políticas en la cuenta de AWS.

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

Contenido de 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" } ] }

Salida:

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

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte StartPolicyGeneration en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar start-resource-scan.

AWS CLI

Inicio inmediato de un análisis de las políticas aplicadas al recurso especificado

En el siguiente ejemplo de start-resource-scan, se inicia de inmediato un análisis de las políticas aplicadas al recurso especificado en la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Generación de políticas del Analizador de acceso de IAM en la Guía del usuario de AWS IAM.

  • Para ver detalles de la API, consulte StartResourceScan en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar tag-resource.

AWS CLI

Adición de una etiqueta al recurso especificado

En el siguiente ejemplo de tag-resource, se añade una etiqueta al recurso especificado en la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para ver los detalles de la API, consulte TagResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar untag-resource.

AWS CLI

Eliminación de etiquetas del recurso especificado

En el siguiente ejemplo de untag-resource, se eliminan las etiquetas de un recurso especificado en la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para ver los detalles de la API, consulte UntagResource en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-archive-rule.

AWS CLI

Actualización de los criterios y valores de la regla de archivado especificada

En el siguiente ejemplo de update-archive-rule, se actualizan los criterios y valores de la regla de archivado especificada en la cuenta de AWS.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Reglas de archivado en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte UpdateArchiveRule en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-findings.

AWS CLI

Actualización del estado de los resultados especificados

En el siguiente ejemplo de update-findings, se actualiza el estado de los resultados especificados en la cuenta de 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

Este comando no genera ninguna salida.

Para obtener más información, consulte Uso de AWS Identity and Access Management Access Analyzer en la Guía del usuario de AWS IAM.

  • Para obtener información sobre la API, consulte UpdateFindings en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar validate-policy.

AWS CLI

Para solicitar la validación de una política y obtener una lista de resultados

En el siguiente ejemplo de validate-policy, se solicita la validación de una política y se obtiene una lista de resultados. La política del ejemplo es una política de confianza de rol para un rol de Amazon Cognito utilizado para la federación de identidades web. Los resultados generados a partir de la política de confianza se refieren a un valor de elemento Sid vacío y a una entidad principal de política no coincidente por el uso de una acción incorrecta de rol de asunción, sts:AssumeRole. La acción correcta de rol de asunción que se debe usar con Cognito es sts:AssumeRoleWithWebIdentity.

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

Contenido de 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" } } } ] }

Salida:

{ "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 } } } ] } ] }

Para obtener más información, consulte Comprobaciones para validar políticas en la Guía del usuario de AWS IAM.

  • Para obtener información acerca de la API, consulte ValidatePolicy en la Referencia de comandos de la AWS CLI.