person Tia Zanella
calendar_add_on Created June 21, 2026
update Updated June 21, 2026
Share
download Download MD

Productor OSIRIS JSON per a Amazon Web Services

El productor OSIRIS JSON AWS es connecta a Amazon Web Services mitjançant l’AWS SDK per a Go v2 i genera documents d’instantània OSIRIS JSON de la topologia del compte: VPC, subxarxes, grups de seguretat, Transit Gateways, Direct Connect, equilibradors de càrrega, instàncies EC2 i altres recursos.

Requisits previs

  1. Installeu el productor OSIRIS JSON. Consulteu la pàgina Installació per obtenir més opcions d’installació.
  2. Configureu les credencials AWS mitjançant un dels mètodes següents:
    • aws configure --profile <name> per a credencials estàtiques
    • aws configure sso per a IAM Identity Center (SSO)
    • osirisjson-producer aws setup-sso --start-url <URL> per a la configuració SSO automatitzada
    • Variables d’entorn (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
    • Perfil d’instància IAM quan s’executa a EC2
  3. L’usuari autenticat ha de tenir accés de només lectura a un o més comptes de destinació. Podeu executar el productor al vostre equip local o invocar-lo mitjançant una tasca programada amb un compte de servei.

Ús de la CLI

osirisjson-producer aws [flags]
osirisjson-producer aws setup-sso --start-url <URL> [--region <region>]
osirisjson-producer aws template --generate

La configuració SSO automatitza la creació de perfils

Per a les organitzacions que utilitzen AWS IAM Identity Center, anteriorment AWS SSO, amb molts comptes, la subordre setup-sso automatitza la creació de perfils:

osirisjson-producer aws setup-sso --start-url https://myorg.awsapps.com/start

L’ordre duu a terme les accions següents:

  1. Detecta automàticament la regió SSO o utilitza --region per especificar-la.
  2. Obre un navegador per autoritzar el dispositiu.
  3. Descobreix tots els comptes i rols.
  4. Escriu els perfils a ~/.aws/config amb el format <AccountName>_<RoleName>.
  5. Desa el testimoni SSO a la memòria cau per utilitzar-lo immediatament, sense requerir una execució separada de aws sso login.

Aquesta funció és especialment útil en entorns empresarials amb centenars de comptes AWS, on la configuració manual dels perfils és poc pràctica.

Mode interactiu

Executeu l’ordre sense indicadors per obtenir un selector de perfils interactiu:

osirisjson-producer aws

El productor descobreix tots els perfils de l’AWS CLI de ~/.aws/config i ~/.aws/credentials i presenta una llista numerada. Seleccioneu números individuals (1,3,5), intervals (30-55), combinacions (1,3,30-55) o escriviu all. A continuació, seleccioneu les 17 regions predeterminades o indiqueu regions específiques.

Mode de compte i regió únics

Recull un compte i una regió i desa el resultat com a amazon-aws-<timestamp>-<name>-<region>.json:

osirisjson-producer aws --profile prod --region us-east-1

Mode multiregió

Recull totes les regions d’un compte i crea una carpeta amb un fitxer per regió:

# All 17 default regions
osirisjson-producer aws --profile prod --all-regions

# Specific regions
osirisjson-producer aws --profile prod --region us-east-1,eu-west-1

Mode per lots (CSV)

Generar una plantilla CSV:

osirisjson-producer aws template --generate

Recollir dades a partir d’un fitxer CSV:

osirisjson-producer aws -s accounts.csv -o ./output

La plantilla CSV utilitza les columnes següents:

ColumnaObligatòriaDescripció
profileNom del perfil de l’AWS CLI
account_idNúmero de compte AWS de 12 dígits, resolt mitjançant STS si el valor és buit
account_nameEtiqueta llegible utilitzada com a nom de la carpeta de sortida
regionsLlista de regions separades per comes. Un valor buit selecciona totes les regions predeterminades.
environmentEtapa de desplegament: dv, np, pr
notesNotes de text lliure, ignorades pel productor

Jerarquia de sortida

Regió única: desa amazon-aws-<timestamp>-<name>-<region>.json al directori actual.

Diverses regions per a un sol compte: crea una carpeta al directori actual:

amazon-aws-<timestamp>-<name>/
  us-east-1.json
  eu-west-1.json
  ...

Mode per lots amb directori de sortida:

output/
  <AccountName>/
    <timestamp>/
      us-east-1.json
      eu-west-1.json
      ...

Cada regió genera un document OSIRIS JSON autònom. Els recursos globals, com ara les zones allotjades de Route53 i els Global Accelerators, s’integren al document us-east-1.

Referència d’indicadors

IndicadorForma curtaDescripció
--profile-PNom del perfil de l’AWS CLI
--region-RRegions AWS separades per comes
--all-regionsRecorre les 17 regions AWS predeterminades
--source-sFitxer CSV amb els comptes de destinació
--output-oDirectori de sortida
--safe-failure-modeTractament de secrets: fail-closed (predeterminat), log-and-redact, off
--help / -hMostra l’ajuda i surt del programa

Dades recollides

Per defecte, el productor AWS recull totes les dades disponibles d’acord amb l’Especificació OSIRIS JSON. No hi ha cap opció per canviar el nivell de detall. Els tipus de recursos següents es consulten mitjançant l’AWS SDK v2:

Tipus OSIRIS estàndard:

Recurs AWSTipus OSIRISAPI AWS
VPCnetwork.vpcec2:DescribeVpcs
Subxarxanetwork.subnetec2:DescribeSubnets
Grup de seguretatnetwork.security.groupec2:DescribeSecurityGroups
Interfície de xarxa (ENI)network.interfaceec2:DescribeNetworkInterfaces
Equilibrador de càrrega (ALB/NLB/GWLB)network.loadbalancerelbv2:DescribeLoadBalancers
Equilibrador de càrrega clàssicnetwork.loadbalancerelb:DescribeLoadBalancers
Tallafoc de xarxanetwork.firewallnetworkfirewall:ListFirewalls
Instància EC2compute.vmec2:DescribeInstances

Tipus personalitzats (espai de noms osiris.aws.*):

Recurs AWSTipus OSIRISAPI AWS
Taula d’encaminamentosiris.aws.routetableec2:DescribeRouteTables
Internet Gatewayosiris.aws.gateway.internetec2:DescribeInternetGateways
NAT Gatewayosiris.aws.gateway.natec2:DescribeNatGateways
VPN Gatewayosiris.aws.gateway.vpnec2:DescribeVpnGateways
Customer Gatewayosiris.aws.gateway.customerec2:DescribeCustomerGateways
Internet Gateway només de sortidaosiris.aws.gateway.egressonlyec2:DescribeEgressOnlyInternetGateways
Adreça IP elàsticaosiris.aws.elasticipec2:DescribeAddresses
Punt de connexió VPCosiris.aws.vpc.endpointec2:DescribeVpcEndpoints
Connexió d’emparellament VPCosiris.aws.vpc.peeringec2:DescribeVpcPeeringConnections
Transit Gatewayosiris.aws.transitgatewayec2:DescribeTransitGateways
Connexió TGWosiris.aws.transitgateway.attachmentec2:DescribeTransitGatewayAttachments
Taula d’encaminament TGWosiris.aws.transitgateway.routetableec2:DescribeTransitGatewayRouteTables
Connexió d’emparellament TGWosiris.aws.transitgateway.peeringec2:DescribeTransitGatewayPeeringAttachments
ACL de xarxaosiris.aws.naclec2:DescribeNetworkAcls
Connexió Direct Connectosiris.aws.directconnectdirectconnect:DescribeConnections
Direct Connect Gatewayosiris.aws.directconnect.gatewaydirectconnect:DescribeDirectConnectGateways
Interfície virtual Direct Connectosiris.aws.directconnect.vifdirectconnect:DescribeVirtualInterfaces
Connexió VPNosiris.aws.vpn.connectionec2:DescribeVpnConnections
Opcions DHCPosiris.aws.dhcpoptionsec2:DescribeDhcpOptions
Llista de prefixos gestionadaosiris.aws.prefixlistec2:DescribeManagedPrefixLists
Flow Logosiris.aws.flowlogec2:DescribeFlowLogs
Zona de disponibilitatosiris.aws.availabilityzoneec2:DescribeAvailabilityZones
Grup de destinacióosiris.aws.targetgroupelbv2:DescribeTargetGroups
Regla del Resolverosiris.aws.resolver.ruleroute53resolver:ListResolverRules
Punt de connexió del Resolverosiris.aws.resolver.endpointroute53resolver:ListResolverEndpoints
Zona allotjada de Route53osiris.aws.route53.zoneroute53:ListHostedZones (global)
Global Acceleratorosiris.aws.globalacceleratorglobalaccelerator:ListAccelerators (global)

Estructura de la sortida OSIRIS JSON per a AWS

{
  "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
  "version": "1.0.0",
  "metadata": {
    "generator": {
      "name": "osirisjson-producer-aws",
      "version": "0.1.0"
    },
    "scope": {
      "providers": ["aws"],
      "accounts": ["123456789012"],
      "regions": ["us-east-1", "global"]
    }
  },
  "topology": {
    "resources": [ ... ],
    "connections": [ ... ],
    "groups": [ ... ]
  }
}

Tipus de recursos

Els tipus de recursos segueixen l’Especificació OSIRIS JSON v1.0. Quan estan definits, s’utilitzen els tipus estàndard. Els tipus específics d’AWS utilitzen l’espai de noms osiris.aws.*.

Tipus estàndard:

  • network.vpc: núvols privats virtuals
  • network.subnet: subxarxes
  • network.interface: interfícies de xarxa elàstiques
  • network.security.group: grups de seguretat
  • network.loadbalancer: equilibradors de càrrega (ALB, NLB, GWLB, Classic)
  • network.firewall: tallafocs de xarxa
  • compute.vm: instàncies EC2

Tipus personalitzats (osiris.aws.*):

  • osiris.aws.routetable: taules d’encaminament amb entrades de ruta
  • osiris.aws.gateway.internet: Internet Gateways
  • osiris.aws.gateway.nat: NAT Gateways
  • osiris.aws.gateway.vpn: VPN Gateways
  • osiris.aws.gateway.customer: Customer Gateways
  • osiris.aws.gateway.egressonly: Internet Gateways només de sortida
  • osiris.aws.elasticip: adreces IP elàstiques
  • osiris.aws.vpc.endpoint: punts de connexió VPC de tipus gateway i interfície
  • osiris.aws.vpc.peering: connexions d’emparellament VPC
  • osiris.aws.transitgateway: Transit Gateways
  • osiris.aws.transitgateway.attachment: connexions TGW
  • osiris.aws.transitgateway.routetable: taules d’encaminament TGW
  • osiris.aws.transitgateway.peering: connexions d’emparellament TGW
  • osiris.aws.nacl: ACL de xarxa
  • osiris.aws.directconnect: connexions Direct Connect
  • osiris.aws.directconnect.gateway: Direct Connect Gateways
  • osiris.aws.directconnect.vif: interfícies virtuals Direct Connect
  • osiris.aws.vpn.connection: connexions VPN
  • osiris.aws.dhcpoptions: conjunts d’opcions DHCP
  • osiris.aws.prefixlist: llistes de prefixos gestionades
  • osiris.aws.flowlog: registres de flux VPC
  • osiris.aws.availabilityzone: zones de disponibilitat
  • osiris.aws.targetgroup: grups de destinació
  • osiris.aws.resolver.rule: regles de Route53 Resolver
  • osiris.aws.resolver.endpoint: punts de connexió de Route53 Resolver
  • osiris.aws.route53.zone: zones allotjades de Route53
  • osiris.aws.globalaccelerator: Global Accelerators

Tipus de connexions

  • contains: relació de contenció, per exemple una subxarxa dins d’un VPC
  • network: connectivitat de xarxa, inclosos ENI a subxarxa, grup de seguretat a ENI, ACL de xarxa a subxarxa, associacions de taules d’encaminament, enllaços de NAT Gateway, connexions IGW/VGW, emparellaments VPC, connexions TGW, interfície virtual Direct Connect a gateway, connexions VPN, DHCP a VPC i equilibrador de càrrega a grup de destinació

Tipus de grups

  • osiris.aws.account: grup de compte de nivell superior amb grups VPC com a elements fills
  • network.vpc: grups VPC que contenen els recursos del VPC com a membres

Metadades del proveïdor

Cada recurs inclou provider.type amb el tipus de recurs natiu d’AWS, per exemple ec2:vpc, ec2:instance o elbv2:loadbalancer. Els recursos també inclouen provider.region i provider.account.

ID dels recursos

Els ID dels recursos AWS segueixen el patró aws::arn:aws:<service>:<region>:<account>:<resource> per construir ARN canònics. Per als recursos que ja disposen d’un ARN, com ara els equilibradors de càrrega, s’utilitza l’ARN existent amb el prefix aws::.

Exemples

Regió única

Recollir un únic compte AWS i una regió:

osirisjson-producer aws --profile prod --region us-east-1

Exemple de document de sortida OSIRIS JSON:

{
  "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
  "version": "1.0.0",
  "metadata": {
    "generator": {
      "name": "osirisjson-producer-aws",
      "version": "0.1.0"
    },
    "scope": {
      "providers": ["aws"],
      "accounts": ["123456789012"],
      "regions": ["us-east-1", "global"]
    }
  },
  "topology": {
    "resources": [
      {
        "id": "aws::arn:aws:ec2:us-east-1:123456789012:vpc/vpc-045dbb8300ce8bfd3",
        "type": "network.vpc",
        "name": "production-vpc",
        "status": "active",
        "provider": {
          "name": "aws",
          "native_id": "vpc-045dbb8300ce8bfd3",
          "type": "ec2:vpc",
          "region": "us-east-1",
          "account": "123456789012"
        },
        "properties": {
          "cidr_block": "10.0.0.0/16",
          "is_default": false,
          "owner_id": "123456789012"
        }
      },
      {
        "id": "aws::arn:aws:ec2:us-east-1:123456789012:instance/i-0abc123def456",
        "type": "compute.vm",
        "name": "web-server-01",
        "status": "active",
        "provider": {
          "name": "aws",
          "native_id": "i-0abc123def456",
          "type": "ec2:instance",
          "region": "us-east-1",
          "account": "123456789012"
        },
        "properties": {
          "instance_type": "c5.xlarge",
          "private_ip": "10.0.1.24",
          "public_ip": "203.0.113.10",
          "vpc_id": "vpc-123456789012",
          "subnet_id": "subnet-123456789012"
        }
      }
    ],
    "connections": [
      {
        "source": "aws::arn:aws:ec2:us-east-1:123456789012:subnet/subnet-0ed57794b6f7812a5",
        "target": "aws::arn:aws:ec2:us-east-1:123456789012:vpc/vpc-045dbb8300ce8bfd3",
        "type": "contains",
        "direction": "forward"
      }
    ],
    "groups": [
      {
        "id": "aws::account::123456789012",
        "type": "osiris.aws.account",
        "name": "Account 123456789012",
        "children": [
          "aws::vpc-group::us-east-1::vpc-123456789012"
        ]
      },
      {
        "id": "aws::vpc-group::us-east-1::vpc-123456789012",
        "type": "network.vpc",
        "name": "VPC production-vpc",
        "members": [
          "aws::arn:aws:ec2:us-east-1:123456789012:vpc/vpc-123456789012",
          "aws::arn:aws:ec2:us-east-1:123456789012:subnet/subnet-123456789012"
        ]
      }
    ]
  }
}
edit_note

Help improve this page

Found an issue or want to contribute? Open an issue.