Class: SDM::SnapshotClient

Inherits:
Object
  • Object
show all
Defined in:
lib/strongdm.rb

Overview

SnapshotClient exposes methods to query historical records at a provided timestamp.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ SnapshotClient

Returns a new instance of SnapshotClient.



419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
# File 'lib/strongdm.rb', line 419

def initialize(client)
  @access_requests = SnapshotAccessRequests.new(client.access_requests)
  @account_attachments = SnapshotAccountAttachments.new(client.)
  @account_grants = SnapshotAccountGrants.new(client.)
  @account_permissions = SnapshotAccountPermissions.new(client.)
  @account_resources = SnapshotAccountResources.new(client.)
  @accounts = SnapshotAccounts.new(client.accounts)
  @nodes = SnapshotNodes.new(client.nodes)
  @peering_group_nodes = SnapshotPeeringGroupNodes.new(client.peering_group_nodes)
  @peering_group_peers = SnapshotPeeringGroupPeers.new(client.peering_group_peers)
  @peering_group_resources = SnapshotPeeringGroupResources.new(client.peering_group_resources)
  @peering_groups = SnapshotPeeringGroups.new(client.peering_groups)
  @remote_identities = SnapshotRemoteIdentities.new(client.remote_identities)
  @remote_identity_groups = SnapshotRemoteIdentityGroups.new(client.remote_identity_groups)
  @resources = SnapshotResources.new(client.resources)
  @role_resources = SnapshotRoleResources.new(client.role_resources)
  @roles = SnapshotRoles.new(client.roles)
  @secret_stores = SnapshotSecretStores.new(client.secret_stores)
  @workflows = SnapshotWorkflows.new(client.workflows)
end

Instance Attribute Details

#access_requestsObject (readonly)

AccessRequests are requests for access to a resource that may match a Workflow.

See SDM::SnapshotAccessRequests.



443
444
445
# File 'lib/strongdm.rb', line 443

def access_requests
  @access_requests
end

#account_attachmentsObject (readonly)

AccountAttachments assign an account to a role.

See SDM::SnapshotAccountAttachments.



447
448
449
# File 'lib/strongdm.rb', line 447

def 
  @account_attachments
end

#account_grantsObject (readonly)

AccountGrants assign a resource directly to an account, giving the account the permission to connect to that resource.

See SDM::SnapshotAccountGrants.



451
452
453
# File 'lib/strongdm.rb', line 451

def 
  @account_grants
end

#account_permissionsObject (readonly)

AccountPermissions records the granular permissions accounts have, allowing them to execute relevant commands via StrongDM's APIs.

See SDM::SnapshotAccountPermissions.



456
457
458
# File 'lib/strongdm.rb', line 456

def 
  @account_permissions
end

#account_resourcesObject (readonly)

AccountResources enumerates the resources to which accounts have access. The AccountResources service is read-only.

See SDM::SnapshotAccountResources.



461
462
463
# File 'lib/strongdm.rb', line 461

def 
  @account_resources
end

#accountsObject (readonly)

Accounts are users that have access to strongDM. There are two types of accounts:

  1. Users: humans who are authenticated through username and password or SSO.
  2. Service Accounts: machines that are authenticated using a service token.

See SDM::SnapshotAccounts.



467
468
469
# File 'lib/strongdm.rb', line 467

def accounts
  @accounts
end

#nodesObject (readonly)

Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:

  • Gateways are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
  • Relays are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.

See SDM::SnapshotNodes.



473
474
475
# File 'lib/strongdm.rb', line 473

def nodes
  @nodes
end

#peering_group_nodesObject (readonly)

PeeringGroupNodes provides the building blocks necessary to obtain attach a node to a peering group.

See SDM::SnapshotPeeringGroupNodes.



477
478
479
# File 'lib/strongdm.rb', line 477

def peering_group_nodes
  @peering_group_nodes
end

#peering_group_peersObject (readonly)

PeeringGroupPeers provides the building blocks necessary to link two peering groups.

See SDM::SnapshotPeeringGroupPeers.



481
482
483
# File 'lib/strongdm.rb', line 481

def peering_group_peers
  @peering_group_peers
end

#peering_group_resourcesObject (readonly)

PeeringGroupResources provides the building blocks necessary to obtain attach a resource to a peering group.

See SDM::SnapshotPeeringGroupResources.



485
486
487
# File 'lib/strongdm.rb', line 485

def peering_group_resources
  @peering_group_resources
end

#peering_groupsObject (readonly)

PeeringGroups provides the building blocks necessary to obtain explicit network topology and routing.

See SDM::SnapshotPeeringGroups.



489
490
491
# File 'lib/strongdm.rb', line 489

def peering_groups
  @peering_groups
end

#remote_identitiesObject (readonly)

RemoteIdentities assign a resource directly to an account, giving the account the permission to connect to that resource.

See SDM::SnapshotRemoteIdentities.



493
494
495
# File 'lib/strongdm.rb', line 493

def remote_identities
  @remote_identities
end

#remote_identity_groupsObject (readonly)

A RemoteIdentityGroup is a named grouping of Remote Identities for Accounts. An Account's relationship to a RemoteIdentityGroup is defined via RemoteIdentity objects.

See SDM::SnapshotRemoteIdentityGroups.



498
499
500
# File 'lib/strongdm.rb', line 498

def remote_identity_groups
  @remote_identity_groups
end

#resourcesObject (readonly)

Resources are databases, servers, clusters, websites, or clouds that strongDM delegates access to.

See SDM::SnapshotResources.



503
504
505
# File 'lib/strongdm.rb', line 503

def resources
  @resources
end

#role_resourcesObject (readonly)

RoleResources enumerates the resources to which roles have access. The RoleResources service is read-only.

See SDM::SnapshotRoleResources.



508
509
510
# File 'lib/strongdm.rb', line 508

def role_resources
  @role_resources
end

#rolesObject (readonly)

A Role has a list of access rules which determine which Resources the members of the Role have access to. An Account can be a member of multiple Roles via AccountAttachments.

See SDM::SnapshotRoles.



514
515
516
# File 'lib/strongdm.rb', line 514

def roles
  @roles
end

#secret_storesObject (readonly)

SecretStores are servers where resource secrets (passwords, keys) are stored.

See SDM::SnapshotSecretStores.



518
519
520
# File 'lib/strongdm.rb', line 518

def secret_stores
  @secret_stores
end

#workflowsObject (readonly)

Workflows are the collection of rules that define the resources to which access can be requested, the users that can request that access, and the mechanism for approving those requests which can either but automatic approval or a set of users authorized to approve the requests.

See SDM::SnapshotWorkflows.



524
525
526
# File 'lib/strongdm.rb', line 524

def workflows
  @workflows
end