aws_elasticache_clusters Resource
Use the aws_elasticache_clusters
InSpec audit resource to test the properties of all AWS ElastiCache clusters. To audit a single ElastiCache cluster, use aws_elasticache_cluster
(singular).
Install
This resource is available in the Chef InSpec AWS resource pack.
For information on configuring your AWS environment for Chef InSpec and creating an InSpec profile that uses the InSpec AWS resource pack, see the Chef InSpec documentation on the AWS cloud platform.
Syntax
An aws_elasticache_clusters
resource block collects a group of ElastiCache cluster descriptions and then tests that group.
describe aws_elasticache_clusters
it { should exist }
end
Parameters
This resource does not require any parameters.
Properties
ids
- The user-supplied identifier of the cluster. This identifier is a unique key that identifies a cluster.
node_types
- The name of the compute and memory capacity node type for the cluster, e.g.
cache.m5.large
. engines
- The name of the cache engine, e.g.
redis
. status
- The current state of the cluster, e.g.
creating
,available
. zones
- The name of the availability zone in which the cluster is located or “Multiple” if the cache nodes are located in different availability zones.
subnet_group_names
- The name of the cache subnet group.
encrypted_at_rest
- Indicates whether the content is encrypted at rest or not.
encrypted_at_transit
- Indicates whether the content is encrypted at transit or not.
Examples
Ensure that exactly 3 ElastiCache clusters exist.
describe aws_elasticache_clusters do
its("entries.count") { should cmp 3 }
end
Use this InSpec resource to request the IDs of all ElastiCache clusters, then test in-depth using aws_elasticache_cluster
and aws_elasticache_cluster_node
.
aws_elasticache_clusters.ids.each do |id|
aws_elasticache_cluster(id).node_ids.each do |node_id|
describe aws_elasticache_cluster_node(cache_cluster_id: id, node_id: node_id) do
it { should exist }
end
end
end
Matchers
For a full list of available matchers, see our Universal Matchers page.exist
The control will pass if the describe returns at least one result.
Use should_not
to test the entity should not exist.
describe aws_elasticache_clusters.where( <property>: <value>) do
it { should exist }
end
describe aws_elasticache_clusters.where( <property>: <value>) do
it { should_not exist }
end
AWS Permissions
Your Principal will need the ElastiCache:Client:CacheClusterMessage
action with Effect
set to Allow
.
You can find detailed documentation at Actions, Resources, and Condition Keys for Amazon ElastiCache, and Actions, Resources, and Condition Keys for Identity And Access Management.