

# Appendix: Best practices by pillar
<a name="appendix"></a>

## Operational excellence
<a name="operational-excellence"></a>

**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
<a name="security"></a>

**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
<a name="reliability"></a>

**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
<a name="performance-efficiency"></a>

**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
<a name="cost-optimization"></a>

**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
<a name="sustainability"></a>

**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