Appendix: Best practices by pillar - Internet of Things (IoT) Lens

Appendix: Best practices by pillar

Operational excellence

IOTOPS01: How do you evaluate governance and compliance requirements?

  • IOTOPS01-BP01 Conduct an OT and IT cybersecurity risk assessment using a common framework

  • IOTOPS01-BP02 Evaluate if OT and IT teams use separate policies and controls to manage cybersecurity risks or if they use the same policy

IOTOPS02: Is there a central cloud center of excellence (CCoE) with equivalent representation from OT and IT in industrial organizations?

  • IOTOPS02-BP01 Consolidate resources into centers of excellence to bring focus to new or transforming enterprises

IOTOPS03: Do you organize the fleet to quickly identify devices?

  • IOTOPS03-BP01 Use static and dynamic device hierarchies to support fleet operations

  • IOTOPS03-BP02 Use index and search services to enable rapid identification of target devices

IOTOPS04: How do you verify that newly provisioned devices have the required operational prerequisites?

  • IOTOPS04-BP01 The device management processes should be automated, data-driven, and based on previous, current, and expected device behavior

IOTOPS05: How do you govern device fleet provisioning process?

  • IOTOPS05-BP01 Document how devices join your fleet from manufacturing to provisioning

  • IOTOPS05-BP02 Use programmatic techniques to provision devices at scale

  • IOTOPS05-BP03 Use device level features to enable re-provisioning

IOTOPS06: How do you implement observability for your IoT system?

  • IOTOPS06-BP01 Implement monitoring to capture logs and metrics

  • IOTOPS06-BP02 Capture and monitor application performance at the edge

  • IOTOPS06-BP03 Monitor the status of your IoT devices

  • IOTOPS06-BP04 Use device state management services to detect status and connectivity patterns

IOTOPS07: How do you assess whether your IoT application meets your operational goals?

  • IOTOPS07-BP01 Enable appropriate responses to events

  • IOTOPS07-BP02 Use data-driven auditing metrics to detect if any of your IoT devices might have been broadly accessed

IOTOPS08: How do you segment your device operations in your IoT application?

  • IOTOPS08-BP01 Use static and dynamic device attributes to identify devices with anomalous behavior

IOTOPS09: How do you evolve your IoT application with minimum impact to downstream IoT devices?

  • IOTOPS09-BP01 Run ops metrics analysis across business teams, document learnings and define action items for future firmware deployments

IOTOPS10: How do you verify that you are ready to support the operations of devices in your IoT workload?

  • IOTOPS10-BP01 Train team members supporting your IoT workloads on the lifecycle of IoT applications and your business objectives

Security

IOTSEC01: How do you associate IoT identities and permissions with your devices?

  • IOTSEC01-BP01 Assign unique identities to each IoT device

IOTSEC02: How do you secure your devices and protect device credentials?

  • IOTSEC02-BP01 Use a separate hardware or a secure area on your devices to store credentials

  • IOTSEC02-BP02 Use a trusted platform module (TPM) to implement cryptographic controls

  • IOTSEC02-BP03 Use protected boot and persistent storage encryption

IOTSEC03: How do you authenticate and authorize user access to your IoT application?

  • IOTSEC03-BP01 Implement authentication and authorization for users accessing IoT resources

  • IOTSEC03-BP02 Decouple access to your IoT infrastructure from the IoT applications

IOTSEC04: How do you apply least privilege to principals that interact with your IoT application?

  • IOTSEC04-BP01 Assign least privilege access to devices

IOTSEC05: How do you manage device certificates, including installation, validation, revocation, and rotation?

  • IOTSEC05-BP01 Perform certificate lifecycle management

IOTSEC06: How do you analyze application and device logs and metrics to detect security issues?

  • IOTSEC06-BP01 Collect and analyze logs and metrics to capture authorization errors and failures to enable appropriate response

  • IOTSEC06-BP02 Send alerts when security events, misconfiguration, and behavior violations are detected

  • IOTSEC06-BP03 Alert on non-compliant device configurations and remediate using automation

IOTSEC07: What infrastructure protection configuration has been defined for your AWS organization and accounts?

  • IOTSEC07-BP01 Configure cloud infrastructure to have secure communications

  • IOTSEC07-BP02 Define networking configuration which restricts communications to only those ports and protocols which are required

  • IOTSEC07-BP03 Log and monitor network configuration changes and network communication

IOTSEC08: How is the infrastructure into which your IoT devices are deployed managed and maintained?

  • IOTSEC08-BP01 Define an automated and monitored mechanism for deploying, managing, and maintaining networks to which IoT devices are connected

  • IOTSEC08-BP02 Define an automated and monitored mechanism for deploying, managing, and maintaining network configurations for IoT devices

IOTSEC09: What processes are used to manage and maintain the hardware or software deployed and configured in your IoT devices?

  • IOTSEC09-BP01 Manage and maintain IoT Device software using an automated, monitored, and audited mechanism

  • IOTSEC09-BP02 Manage IoT device configuration using automated and controlled mechanisms

IOTSEC10: How do you make sure that device data is protected at rest and in transit?

  • IOTSEC10-BP01 Use encryption to protect IoT data in transit and at rest

  • IOTSEC10-BP02 Use data classification strategies to categorize data access based on levels of sensitivity

  • IOTSEC10-BP03 Protect your IoT data in compliance with regulatory requirements

IOTSEC11: How do you plan the security lifecycle of your IoT devices?

  • IOTSEC11-BP01 Build incident response mechanisms to address security events at scale

  • IOTSEC11-BP02 Require timely vulnerability notifications and software updates from your providers

IOTSEC12: How do you develop, maintain, manage, and deploy application code to your IoT devices and gateways?

  • IOTSEC12-BP01 Manage IoT device and gateway source code using source code management tools

  • IOTSEC12-BP02 Use static code analysis tools and code scanning to check IoT application code

  • IOTSEC12-BP03 Deploy IoT applications using IaC, CI/CD pipelines, and build and deploy automation

IOTSEC13: How do you identify and remediate risks in IoT device firmware, IoT application code, and depended-upon packages or libraries?

  • IOTSEC13-BP01 Use code and package scanning tools during development to identify potential risks during development

  • IOTSEC13-BP02 Deploy updates to IoT device firmware or software to address identified issues

  • IOTSEC13-BP03 Identify IoT devices which require updates and schedule updates to those devices

IOTSEC14: How do you govern the security of your IoT applications?

  • IOTSEC14-BP01 Establish a security governance team for your IoT applications or extend the security governance team for the organization

  • IOTSEC14-BP02 Define security policy so that it can be written into verifiable checks using policy as code techniques

  • IOTSEC14-BP03 Implement a risk assessment and risk management process

IOTSEC15: What regulations apply to your IoT applications and how do you show compliance with these regulations?

  • IOTSEC15-BP01 Identify the set of relevant regulations for your IoT applications

  • IOTSEC15-BP02 Set up logging and monitoring to support audit checks for compliance

  • IOTSEC15-BP03 Implement automated compliance checking using compliance as code

Reliability

IOTREL01: How do you make sure that your device consistently keeps its internal clock accurate?

  • IOTREL01-BP01 Use NTP to maintain time synchronization on devices

  • IOTREL01-BP02 Provide devices access to NTP servers

IOTREL02: How do you manage service quotas and limits for peaks in your IoT workload?

  • IOTREL02-BP01 Manage service quotas and constraints

IOTREL03: How do you design workloads to operate efficiently within network bandwidth and storage constraints?

  • IOTREL03-BP01 Down sample data to reduce storage requirements and network utilization

IOTREL04: How do you optimize and control message delivery frequency to IoT devices?

  • IOTREL04-BP01 Target messages to relevant devices

  • IOTREL04-BP02 Implement retry and back off logic to support throttling by device type

IOTREL05: How do you manage data ingestion and processing throughput for IoT workloads to other applications?

  • IOTREL05-BP01 Decouple IoT applications from the Connectivity Layer through an Ingestion Layer

IOTREL06: How do you facilitate reliable processing and delivery of IoT messages across your workload?

  • IOTREL06-BP01 Dynamically scale cloud resources based on the utilization

IOTREL07: How do you provision storage strategies for IoT data in the cloud?

  • IOTREL07-BP01 Store data before processing

  • IOTREL07-BP02 Implement storage redundancy and failover mechanisms for IoT data perpersistence

IOTREL08: How do you update device firmware on your IoT device?

  • IOTREL08-BP01 Use a mechanism to deploy and monitor firmware updates

  • IOTREL08-BP02 Configure firmware rollback capabilities in devices

  • IOTREL08-BP03 Implement support for incremental updates to target device groups

  • IOTREL08-BP04 Implement dynamic configuration management for devices

IOTREL09: How do you perform functional testing for your IoT solution?

  • IOTREL09-BP01 Implement device simulation to synthesize the entire flow of IoT data

IOTREL10: How do you implement your IoT workload to withstand component and system faults?

  • IOTREL10-BP01 Use cloud service capabilities to handle component failures

IOTREL11: How do you verify that your IoT device operates with intermittent connectivity to the cloud?

  • IOTREL11-BP01 Implement device logic to automatically reconnect to the cloud

  • IOTREL11-BP02 Design devices to use multiple methods of communication

  • IOTREL11-BP03 Automate alerting for devices that are unable to reconnect

IOTREL12: How do you verify that required data is transmitted to the cloud after a device has been disconnected?

  • IOTREL12-BP01 Provide adequate device storage for offline operations

  • IOTREL12-BP02 Synchronize device states upon connection to the cloud

IOTREL13: How do you remotely adjust message frequency to your IoT devices?

  • IOTREL13-BP01 Configure cloud services to reliably handle message processing

  • IOTREL13-BP02 Send logs directly to the cloud

  • IOTREL13-BP03 Design devices to allow for remote configuration of message publication frequency

IOTREL14: How do you plan for disaster recovery in your IoT workloads?

  • IOTREL14-BP01 Design server software to initiate communication only with devices that are online

  • IOTREL14-BP02 Implement multi-Region support for IoT applications and devices

  • IOTREL14-BP03 Use edge devices to store and analyze data

Performance efficiency

IOTPERF01: How do your architectural decisions adapt to device hardware resources?

  • IOTPERF01-BP01 Optimize for device hardware resources utilization

IOTPERF02: How do you measure and maintain the performance of your IoT solution?

  • IOTPERF02-BP01 Implement comprehensive monitoring solutions to collect performance data from your IoT devices

  • IOTPERF02-BP02 Evaluate the runtime performance of your application

IOTPERF03: Does transmitted content include auditable metadata?

  • IOTPERF03-BP01 Add timestamps to each published message

IOTPERF04: Is there a mechanism for payload filtering or stream prioritization?

  • IOTPERF04-BP01 Have mechanisms to prioritize specific payload types

IOTPERF05: How do you optimize telemetry data ingestion?

  • IOTPERF05-BP01 Identify the ingestion mechanisms that best fit your use case

  • IOTPERF05-BP02 Optimize data sent from devices to backend services

IOTPERF06: How do you efficiently make sure stored data is usable by business?

  • IOTPERF06-BP01 Store data in different tiers following formats, access patterns and methods

IOTPERF07: How do you provide optimal connectivity for edge devices communicating to cloud infrastructure?

  • IOTPERF07-BP01 Optimize network topology for distributed devices

  • IOTPERF07-BP02 Perform timely connectivity verification for devices

IOTPERF08: How do you make sure application operates within its scaling limits?

  • IOTPERF08-BP01 Load test your IoT applications

  • IOTPERF08-BP02 Monitor and manage your IoT service quotas using available tools and metrics

IOTPOTPERF09: How do you maintain visibility over the distributed infrastructure deployed?

  • IOTPERF09-BP01 Have device inventory in the IoT system that centralizes device configuration and diagnostics

Cost optimization

IOTCOST01: How do you choose cost-efficient tools for data aggregation of your IoT workloads?

  • IOTCOST01-BP01 Use a data lake for raw telemetry data

  • IOTCOST01-BP02 Provide a self-service interface for end users to search, extract, manage, and update IoT data

  • IOTCOST01-BP03 Track and manage the utilization of data sources

  • IOTCOST01-BP04 Aggregate data at the edge where possible

IOTCOST02: How do you optimize cost of raw telemetry data?

  • IOTCOST02-BP01 Use lifecycle policies to archive your data

  • IOTCOST02-BP02 Evaluate storage characteristics for your use case and align with the right services

  • IOTCOST02-BP03 Store raw archival data on cost effective services

IOTCOST03: How do you optimize cost of interactions between devices and your IoT cloud solution?

  • IOTCOST03-BP01 Select services to optimize cost

  • IOTCOST03-BP02 Implement and configure telemetry to reduce data transfer costs

  • IOTCOST03-BP03 Use shadow only for slow changing data

  • IOTCOST03-BP04 Group and tag IoT devices and messages for cost allocation

  • IOTCOST03-BP05 Implement and configure device messaging to reduce data transfer costs

IOTCOST04: How do you optimize cost by matching the supply of resources with device demand?

  • IOTCOST04-BP01 Plan expected usage over time

IOTCOST05: How do you optimize payload size between devices and your IoT system to save cost?

  • IOTCOST05-BP01 Balance networking throughput against payload size to optimize efficiency

IOTCOST06: How do you optimize the costs of storing the current state of your IoT device?

  • IOTCOST06-BP01 Optimize shadow operations

Sustainability

IOTSUS01: How do you optimize software and firmware to reduce device's carbon footprint?

  • IOTSUS01-BP01 Eliminate unnecessary modules, libraries, and processes

  • IOTSUS01-BP02 Use AWS IoT features to optimize network usage and power consumption

  • IOTSUS01-BP03 Use a hardware watchdog to restart your device automatically

  • IOTSUS01-BP04 Implement resilient and scalable system behavior for clients communicating with the cloud

IOTSUS02: How do you incorporate optimized cloud services in your architecture to minimize your carbon footprint?

  • IOTSUS02-BP01 Use the Basic Ingest feature in AWS IoT Core

  • IOTSUS02-BP02 Choose an appropriate Quality of Service(QoS) level

IOTSUS03: How do you pick the right hardware components?

  • IOTSUS03-BP01 Source sustainable components to help reduce environmental harm and encourage eco-friendly IoT products

  • IOTSUS03-BP02 Consider the manufacturing and distribution footprint of your device

  • IOTSUS03-BP03 Use benchmarks to help you make a processor choice

  • IOTSUS03-BP04 Optimize your device based on real-world testing

  • IOTSUS03-BP05 Use sensors with built-in event detection capabilities

  • IOTSUS03-BP06 Use hardware acceleration for video encoding and decoding

  • IOTSUS03-BP07 Use HSMs to accelerate cryptographic operations and save power

  • IOTSUS03-BP08 Use low-power location tracking

IOTSUS04: How do you minimize power usage and wastage?

  • IOTSUS04-BP01 Use energy harvesting technologies to power your device

  • IOTSUS04-BP02 Implement tickless operation and low-power modes

  • IOTSUS04-BP03 Allow applications or software running on devices to dynamically adjust settings based on requirements and available resources

IOTSUS05: How do you educate users to encourage lower carbon footprint of their devices?

  • IOTSUS05-BP01 Create detailed documentation

  • IOTSUS05-BP02 Promote responsible disposal, repairability, and transfer of ownership for IoT devices to minimize environmental impact

  • IOTSUS05-BP03 Identify when devices in the field can or should be retired