[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GZ2V8B4GYKMS6WDKFX67A3":3,"skill-same:01M6GZ2V8B4GYKMS6WDKFX67A3":113},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6GZ2V8B4GYKMS6WDKFX67A3","performing-cloud-asset-inventory-with-cartography",null,"Perform comprehensive cloud asset inventory and relationship mapping using Cartography to build a Neo4j security graph of infrastructure assets, IAM permissions, and attack paths across AWS, GCP, and Azure.","micsapp\u002Fmicstec-skills","micsapp","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F82411001?v=4","01M6GWCFQ6D3PV8EHNY62NN5VW","01M6GWCFVE1PA5HG0DKC7AMFJ3",4,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"inventory","asset inventory","with","asset","performing cloud asset inventory with cartography","cartography","cloud","cloud-security","gcp","iam","security","graph","database","relationship","across","mapping","paths","permissions","infrastructure","cybersecurity","2026-11-10 10:12:30",false,"---\nname: performing-cloud-asset-inventory-with-cartography\ndescription: Perform comprehensive cloud asset inventory and relationship mapping using Cartography to build a Neo4j security graph of infrastructure assets, IAM permissions, and attack paths across AWS, GCP, and Azure.\ndomain: cybersecurity\nsubdomain: cloud-security\ntags: [cartography, neo4j, cloud-security, asset-inventory, attack-path, graph-database, cncf, lyft]\nversion: \"1.0\"\nauthor: mahipal\nlicense: Apache-2.0\n---\n\n# Performing Cloud Asset Inventory with Cartography\n\n## Overview\n\nCartography is a CNCF sandbox project (originally created at Lyft) that consolidates infrastructure assets and their relationships into a Neo4j graph database. It queries cloud APIs to discover resources, maps relationships between them, and enables security teams to identify attack paths, generate asset reports, and find areas for security improvement. The graph model reveals hidden connections such as IAM permission chains, network paths, and cross-account trust relationships.\n\n\n## When to Use\n\n- When conducting security assessments that involve performing cloud asset inventory with cartography\n- When following incident response procedures for related security events\n- When performing scheduled security testing or auditing activities\n- When validating security controls through hands-on testing\n\n## Prerequisites\n\n- Python 3.8+\n- Neo4j 4.x or 5.x database\n- Cloud provider credentials (AWS, GCP, Azure)\n- Docker (optional, for Neo4j deployment)\n- Minimum 4GB RAM for Neo4j, more for large environments\n\n## Installation\n\n```bash\n# Install Cartography\npip install cartography\n\n# Verify installation\ncartography --help\n```\n\n### Deploy Neo4j with Docker\n\n```bash\ndocker run -d \\\n  --name neo4j \\\n  -p 7474:7474 -p 7687:7687 \\\n  -e NEO4J_AUTH=neo4j\u002Fchangethispassword \\\n  -e NEO4J_PLUGINS='[\"apoc\"]' \\\n  -v neo4j_data:\u002Fdata \\\n  neo4j:5-community\n```\n\n## Running Cartography\n\n### Basic AWS Sync\n\n```bash\n# Sync AWS account data to Neo4j\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD\n```\n\n### Sync specific AWS modules\n\n```bash\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  --aws-sync-all-profiles\n```\n\n### GCP Sync\n\n```bash\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  --gcp-requested-syncs compute iam storage\n```\n\n## Security-Focused Cypher Queries\n\n### Find all S3 buckets with public access\n\n```cypher\nMATCH (b:S3Bucket)\nWHERE b.anonymous_access = true\n   OR b.anonymous_actions IS NOT NULL\nRETURN b.name, b.anonymous_actions, b.region, b.arn\nORDER BY b.name\n```\n\n### Identify IAM users with admin policies\n\n```cypher\nMATCH (user:AWSUser)-[:POLICY]->(policy:AWSPolicy)\nWHERE policy.name = 'AdministratorAccess'\n   OR policy.arn CONTAINS 'AdministratorAccess'\nRETURN user.name, user.arn, policy.name, user.password_last_used\n```\n\n### Find EC2 instances exposed to internet\n\n```cypher\nMATCH (instance:EC2Instance)-[:MEMBER_OF_EC2_SECURITY_GROUP]->(sg:EC2SecurityGroup)\n      -[:MEMBER_OF_EC2_SECURITY_GROUP_RULE]->(rule:IpRule)\nWHERE rule.fromport \u003C= 22 AND rule.toport >= 22\n  AND rule.protocol IN ['tcp', '-1']\n  AND '0.0.0.0\u002F0' IN rule.ipranges\nRETURN instance.instanceid, instance.publicipaddress, sg.groupid, sg.name\n```\n\n### Discover cross-account trust relationships\n\n```cypher\nMATCH (role:AWSRole)-[:TRUSTS_AWS_PRINCIPAL]->(principal:AWSPrincipal)\nWHERE principal.arn CONTAINS ':root'\n  AND NOT principal.arn CONTAINS role.accountid\nRETURN role.arn, role.name, principal.arn AS trusted_account\nORDER BY role.name\n```\n\n### Find attack path from public EC2 to sensitive S3\n\n```cypher\nMATCH path = (instance:EC2Instance)-[:STS_ASSUME_ROLE_ALLOWS|MEMBER_OF_EC2_SECURITY_GROUP|\n  POLICY|INSTANCE_PROFILE*1..5]->(bucket:S3Bucket)\nWHERE instance.publicipaddress IS NOT NULL\n  AND bucket.name CONTAINS 'sensitive'\nRETURN path\nLIMIT 25\n```\n\n### Identify unused IAM roles\n\n```cypher\nMATCH (role:AWSRole)\nWHERE role.last_used IS NULL\n   OR role.last_used \u003C datetime().epochMillis - (90 * 24 * 60 * 60 * 1000)\nRETURN role.name, role.arn, role.last_used\nORDER BY role.last_used\n```\n\n### Find Lambda functions with overprivileged roles\n\n```cypher\nMATCH (func:AWSLambda)-[:STS_ASSUME_ROLE_ALLOWS]->(role:AWSRole)-[:POLICY]->(policy:AWSPolicy)\nWHERE policy.name = 'AdministratorAccess'\nRETURN func.name, func.arn, role.name, policy.name\n```\n\n### Network path analysis\n\n```cypher\nMATCH (vpc:AWSVpc)-[:RESOURCE]->(subnet:EC2Subnet)-[:MEMBER_OF_SUBNET]->(instance:EC2Instance)\nWHERE instance.publicipaddress IS NOT NULL\nRETURN vpc.id, subnet.subnetid, subnet.cidr_block, instance.instanceid,\n       instance.publicipaddress, instance.state\n```\n\n## Scheduling Regular Syncs\n\n### Cron-based sync\n\n```bash\n# Add to crontab - sync every 6 hours\n0 *\u002F6 * * * \u002Fusr\u002Flocal\u002Fbin\u002Fcartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  >> \u002Fvar\u002Flog\u002Fcartography\u002Fsync.log 2>&1\n```\n\n### Docker Compose deployment\n\n```yaml\nversion: '3.8'\nservices:\n  neo4j:\n    image: neo4j:5-community\n    ports:\n      - \"7474:7474\"\n      - \"7687:7687\"\n    environment:\n      NEO4J_AUTH: neo4j\u002Fsecurepwd123\n      NEO4J_PLUGINS: '[\"apoc\"]'\n      NEO4J_dbms_memory_heap_max__size: 4G\n    volumes:\n      - neo4j_data:\u002Fdata\n\n  cartography:\n    image: ghcr.io\u002Fcartography-cncf\u002Fcartography:latest\n    depends_on:\n      - neo4j\n    environment:\n      NEO4J_PASSWORD: securepwd123\n      AWS_DEFAULT_REGION: us-east-1\n    command: >\n      --neo4j-uri bolt:\u002F\u002Fneo4j:7687\n      --neo4j-user neo4j\n      --neo4j-password-env-var NEO4J_PASSWORD\n\nvolumes:\n  neo4j_data:\n```\n\n## Data Model Overview\n\n### Key Node Types\n- `AWSAccount`, `GCPProject`, `AzureSubscription`\n- `EC2Instance`, `S3Bucket`, `RDSInstance`, `AWSLambda`\n- `AWSUser`, `AWSRole`, `AWSGroup`, `AWSPolicy`\n- `EC2SecurityGroup`, `EC2Subnet`, `AWSVpc`\n- `GCPInstance`, `GCSBucket`, `GCPRole`\n\n### Key Relationship Types\n- `RESOURCE`: Account owns resource\n- `POLICY`: Principal has policy attached\n- `STS_ASSUME_ROLE_ALLOWS`: Principal can assume role\n- `MEMBER_OF_EC2_SECURITY_GROUP`: Instance belongs to SG\n- `TRUSTS_AWS_PRINCIPAL`: Cross-account trust\n\n## References\n\n- Cartography GitHub: https:\u002F\u002Fgithub.com\u002Fcartography-cncf\u002Fcartography\n- Cartography Documentation: https:\u002F\u002Fcartography.dev\n- CNCF Sandbox Project\n- Neo4j Cypher Query Language Reference\n","# Performing Cloud Asset Inventory with Cartography\n\n## Overview\n\nCartography is a CNCF sandbox project (originally created at Lyft) that consolidates infrastructure assets and their relationships into a Neo4j graph database. It queries cloud APIs to discover resources, maps relationships between them, and enables security teams to identify attack paths, generate asset reports, and find areas for security improvement. The graph model reveals hidden connections such as IAM permission chains, network paths, and cross-account trust relationships.\n\n\n## When to Use\n\n- When conducting security assessments that involve performing cloud asset inventory with cartography\n- When following incident response procedures for related security events\n- When performing scheduled security testing or auditing activities\n- When validating security controls through hands-on testing\n\n## Prerequisites\n\n- Python 3.8+\n- Neo4j 4.x or 5.x database\n- Cloud provider credentials (AWS, GCP, Azure)\n- Docker (optional, for Neo4j deployment)\n- Minimum 4GB RAM for Neo4j, more for large environments\n\n## Installation\n\n```bash\n# Install Cartography\npip install cartography\n\n# Verify installation\ncartography --help\n```\n\n### Deploy Neo4j with Docker\n\n```bash\ndocker run -d \\\n  --name neo4j \\\n  -p 7474:7474 -p 7687:7687 \\\n  -e NEO4J_AUTH=neo4j\u002Fchangethispassword \\\n  -e NEO4J_PLUGINS='[\"apoc\"]' \\\n  -v neo4j_data:\u002Fdata \\\n  neo4j:5-community\n```\n\n## Running Cartography\n\n### Basic AWS Sync\n\n```bash\n# Sync AWS account data to Neo4j\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD\n```\n\n### Sync specific AWS modules\n\n```bash\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  --aws-sync-all-profiles\n```\n\n### GCP Sync\n\n```bash\ncartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  --gcp-requested-syncs compute iam storage\n```\n\n## Security-Focused Cypher Queries\n\n### Find all S3 buckets with public access\n\n```cypher\nMATCH (b:S3Bucket)\nWHERE b.anonymous_access = true\n   OR b.anonymous_actions IS NOT NULL\nRETURN b.name, b.anonymous_actions, b.region, b.arn\nORDER BY b.name\n```\n\n### Identify IAM users with admin policies\n\n```cypher\nMATCH (user:AWSUser)-[:POLICY]->(policy:AWSPolicy)\nWHERE policy.name = 'AdministratorAccess'\n   OR policy.arn CONTAINS 'AdministratorAccess'\nRETURN user.name, user.arn, policy.name, user.password_last_used\n```\n\n### Find EC2 instances exposed to internet\n\n```cypher\nMATCH (instance:EC2Instance)-[:MEMBER_OF_EC2_SECURITY_GROUP]->(sg:EC2SecurityGroup)\n      -[:MEMBER_OF_EC2_SECURITY_GROUP_RULE]->(rule:IpRule)\nWHERE rule.fromport \u003C= 22 AND rule.toport >= 22\n  AND rule.protocol IN ['tcp', '-1']\n  AND '0.0.0.0\u002F0' IN rule.ipranges\nRETURN instance.instanceid, instance.publicipaddress, sg.groupid, sg.name\n```\n\n### Discover cross-account trust relationships\n\n```cypher\nMATCH (role:AWSRole)-[:TRUSTS_AWS_PRINCIPAL]->(principal:AWSPrincipal)\nWHERE principal.arn CONTAINS ':root'\n  AND NOT principal.arn CONTAINS role.accountid\nRETURN role.arn, role.name, principal.arn AS trusted_account\nORDER BY role.name\n```\n\n### Find attack path from public EC2 to sensitive S3\n\n```cypher\nMATCH path = (instance:EC2Instance)-[:STS_ASSUME_ROLE_ALLOWS|MEMBER_OF_EC2_SECURITY_GROUP|\n  POLICY|INSTANCE_PROFILE*1..5]->(bucket:S3Bucket)\nWHERE instance.publicipaddress IS NOT NULL\n  AND bucket.name CONTAINS 'sensitive'\nRETURN path\nLIMIT 25\n```\n\n### Identify unused IAM roles\n\n```cypher\nMATCH (role:AWSRole)\nWHERE role.last_used IS NULL\n   OR role.last_used \u003C datetime().epochMillis - (90 * 24 * 60 * 60 * 1000)\nRETURN role.name, role.arn, role.last_used\nORDER BY role.last_used\n```\n\n### Find Lambda functions with overprivileged roles\n\n```cypher\nMATCH (func:AWSLambda)-[:STS_ASSUME_ROLE_ALLOWS]->(role:AWSRole)-[:POLICY]->(policy:AWSPolicy)\nWHERE policy.name = 'AdministratorAccess'\nRETURN func.name, func.arn, role.name, policy.name\n```\n\n### Network path analysis\n\n```cypher\nMATCH (vpc:AWSVpc)-[:RESOURCE]->(subnet:EC2Subnet)-[:MEMBER_OF_SUBNET]->(instance:EC2Instance)\nWHERE instance.publicipaddress IS NOT NULL\nRETURN vpc.id, subnet.subnetid, subnet.cidr_block, instance.instanceid,\n       instance.publicipaddress, instance.state\n```\n\n## Scheduling Regular Syncs\n\n### Cron-based sync\n\n```bash\n# Add to crontab - sync every 6 hours\n0 *\u002F6 * * * \u002Fusr\u002Flocal\u002Fbin\u002Fcartography \\\n  --neo4j-uri bolt:\u002F\u002Flocalhost:7687 \\\n  --neo4j-user neo4j \\\n  --neo4j-password-env-var NEO4J_PASSWORD \\\n  >> \u002Fvar\u002Flog\u002Fcartography\u002Fsync.log 2>&1\n```\n\n### Docker Compose deployment\n\n```yaml\nversion: '3.8'\nservices:\n  neo4j:\n    image: neo4j:5-community\n    ports:\n      - \"7474:7474\"\n      - \"7687:7687\"\n    environment:\n      NEO4J_AUTH: neo4j\u002Fsecurepwd123\n      NEO4J_PLUGINS: '[\"apoc\"]'\n      NEO4J_dbms_memory_heap_max__size: 4G\n    volumes:\n      - neo4j_data:\u002Fdata\n\n  cartography:\n    image: ghcr.io\u002Fcartography-cncf\u002Fcartography:latest\n    depends_on:\n      - neo4j\n    environment:\n      NEO4J_PASSWORD: securepwd123\n      AWS_DEFAULT_REGION: us-east-1\n    command: >\n      --neo4j-uri bolt:\u002F\u002Fneo4j:7687\n      --neo4j-user neo4j\n      --neo4j-password-env-var NEO4J_PASSWORD\n\nvolumes:\n  neo4j_data:\n```\n\n## Data Model Overview\n\n### Key Node Types\n- `AWSAccount`, `GCPProject`, `AzureSubscription`\n- `EC2Instance`, `S3Bucket`, `RDSInstance`, `AWSLambda`\n- `AWSUser`, `AWSRole`, `AWSGroup`, `AWSPolicy`\n- `EC2SecurityGroup`, `EC2Subnet`, `AWSVpc`\n- `GCPInstance`, `GCSBucket`, `GCPRole`\n\n### Key Relationship Types\n- `RESOURCE`: Account owns resource\n- `POLICY`: Principal has policy attached\n- `STS_ASSUME_ROLE_ALLOWS`: Principal can assume role\n- `MEMBER_OF_EC2_SECURITY_GROUP`: Instance belongs to SG\n- `TRUSTS_AWS_PRINCIPAL`: Cross-account trust\n\n## References\n\n- Cartography GitHub: https:\u002F\u002Fgithub.com\u002Fcartography-cncf\u002Fcartography\n- Cartography Documentation: https:\u002F\u002Fcartography.dev\n- CNCF Sandbox Project\n- Neo4j Cypher Query Language Reference\n",{"name":5,"tags":48,"author":55,"domain":42,"license":14,"version":56,"subdomain":30,"description":7},[28,49,30,50,51,52,53,54],"neo4j","asset-inventory","attack-path","graph-database","cncf","lyft","mahipal","1.0","master","3f5d983eb4ef375b749adcd6b07ec03bd82ae8a8","_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography",0,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills","https:\u002F\u002Fgithub.com\u002Fmicsapp","2026-03-20 11:24:18",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add micsapp\u002Fmicstec-skills --skill performing-cloud-asset-inventory-with-cartography",{"tool":70,"command":71},"bunx","bunx skills add micsapp\u002Fmicstec-skills --skill performing-cloud-asset-inventory-with-cartography",{"tool":73,"command":74},"pnpm","pnpm dlx skills add micsapp\u002Fmicstec-skills --skill performing-cloud-asset-inventory-with-cartography","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002FSKILL.md",true,[78,84,89,95,99,103,109],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"assets\u002Ftemplate.md","ASSET","资产文件",617,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Fassets\u002Ftemplate.md",{"path":85,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002FLICENSE",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fapi-reference.md","REFERENCE","参考文档",5064,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Freferences\u002Fapi-reference.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fstandards.md",527,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Freferences\u002Fstandards.md",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fworkflows.md",820,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Freferences\u002Fworkflows.md",{"path":104,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fagent.py","SCRIPT","脚本",8531,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Fscripts\u002Fagent.py",{"path":110,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fprocess.py",6298,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002F_universal\u002Fcybersecurity-skills\u002Fskills\u002Fperforming-cloud-asset-inventory-with-cartography\u002Fscripts\u002Fprocess.py",[114,150,177,197,217,242],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":129,"publishedAt":43},"01M6HBTJ02FXBFG9NYEHHYAP52","azure-apim-architecture","Analyzes and explains Azure API Management architecture decisions for enterprise API marketplace implementations using VNet Internal mode, Front Door, hybrid authentication, and multi-environment strategies. Use when discussing APIM component selection, network topology, cost optimization, or comparing alternatives like workspaces vs instances, VNet Internal vs External mode, or Front Door vs Application Gateway.","MIT","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fazure-apim-architecture\u002FSKILL.md",[121,124],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149],"architecture","azure","azure apim architecture","component","authentication","gateway","topology","Optimization","network","api","team","environment","multi-environment","workspaces","instances","selection","strategies","azure api management","mode","for",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":162,"publishedAt":43},"01M6HBT7J4H082JEEA670B3EQ9","apiops-deployment","Guides deployment of Azure API Management infrastructure using Infrastructure as Code (Bicep\u002FTerraform), CI\u002FCD pipelines (GitHub Actions\u002FAzure DevOps), and APIOps workflows. Use when deploying APIM, creating pipelines, or implementing dev→test→prod promotion strategies.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapiops-deployment\u002FSKILL.md",[156,157,158,161],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":159,"categoryName":160,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},[163,164,165,166,131,41,167,168,169,170,171,172,139,140,146,173,174,147,175,176],"deployment","apiops deployment","workflows","azure devops","code","infrastructure as code","actions","ci","github actions","github-actions","as","guides","CI\u002FCD","implementing",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":184,"publishedAt":43},"01M6HBT2HEA23THNE9E00GYQBE","apim-policy-authoring","Creates production-ready Azure API Management policy XML for authentication (OAuth 2.0, JWT validation, subscription keys), rate limiting, CORS configuration, error handling, and API transformations. Use when implementing API security, access control, or request\u002Fresponse processing logic.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapim-policy-authoring\u002FSKILL.md",[183],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},[185,186,187,33,131,134,139,140,188,189,190,191,192,193,194,147,195,196,176,149],"policy","authoring","apim policy authoring","access","use","ready","api security","Access Control","error","processing","cors configuration","production-ready",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":205,"publishedAt":43},"01M6HBSY65SB29J9WE9KYD0K6T","api-security-review","Reviews Azure API Management configurations for security vulnerabilities, OWASP API Security Top 10 compliance, VNet Internal mode validation, Private Link verification, and Azure Security Benchmark alignment. Use when performing security audits, pre-deployment validation, or compliance reviews.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapi-security-review\u002FSKILL.md",[203,204],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},[206,33,207,139,191,208,131,163,209,210,211,212,140,213,147,214,215,216,148,149],"review","security review","api security review","benchmark","verification","owasp","owasp-api","alignment","azure security","reviews","top",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":43},"01M6HBSRW4PDFE6K4F8JYPZQ05","jira-cli","Interact with Jira from the command line to create, list, view, edit, and transition issues, manage sprints and epics, and perform common Jira workflows. Use when the user asks about Jira tasks, tickets, issues, sprints, or needs to manage project work items.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fjira-cli\u002FSKILL.md",[],[224,225,226,165,227,228,229,230,139,231,232,233,234,235,236,237,238,239,240,241],"cli","jira","jira cli","init","tasks","create","issues","common","work","command","edit","list","view","project","project work","token","line","sprints",{"skillNo":243,"name":244,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":118,"licenseFileUrl":6,"sourceHtmlUrl":246,"categories":247,"keywords":248,"publishedAt":43},"01M6HBSNS3JHMW603G47TWE31H","calculator","Performs arbitrary-precision arithmetic calculations including addition, subtraction, multiplication, division, and exponents. Use when the user asks to calculate, compute, or evaluate math expressions, or when precise decimal arithmetic is needed to avoid floating-point errors.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fcalculator\u002FSKILL.md",[],[244,249,250,251,252,253,254,189,255,256],"npm","js","calculate","node","math","user","compute","errors"]