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.



666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
# File 'lib/strongdm.rb', line 666

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)
  @accounts_groups = SnapshotAccountsGroups.new(client.accounts_groups)
  @approval_workflow_approvers = SnapshotApprovalWorkflowApprovers.new(client.approval_workflow_approvers)
  @approval_workflow_steps = SnapshotApprovalWorkflowSteps.new(client.approval_workflow_steps)
  @approval_workflows = SnapshotApprovalWorkflows.new(client.approval_workflows)
  @discovery_connectors = SnapshotDiscoveryConnectors.new(client.discovery_connectors)
  @granted_account_entitlements = SnapshotGrantedAccountEntitlements.new(client.)
  @granted_resource_entitlements = SnapshotGrantedResourceEntitlements.new(client.granted_resource_entitlements)
  @granted_role_entitlements = SnapshotGrantedRoleEntitlements.new(client.granted_role_entitlements)
  @roles = SnapshotRoles.new(client.roles)
  @groups = SnapshotGroups.new(client.groups)
  @groups_roles = SnapshotGroupsRoles.new(client.groups_roles)
  @identity_aliases = SnapshotIdentityAliases.new(client.identity_aliases)
  @identity_sets = SnapshotIdentitySets.new(client.identity_sets)
  @nodes = SnapshotNodes.new(client.nodes)
  @policies = SnapshotPolicies.new(client.policies)
  @proxy_cluster_keys = SnapshotProxyClusterKeys.new(client.proxy_cluster_keys)
  @remote_identities = SnapshotRemoteIdentities.new(client.remote_identities)
  @remote_identity_groups = SnapshotRemoteIdentityGroups.new(client.remote_identity_groups)
  @requestable_account_entitlements = SnapshotRequestableAccountEntitlements.new(client.)
  @requestable_resource_entitlements = SnapshotRequestableResourceEntitlements.new(client.requestable_resource_entitlements)
  @requestable_role_entitlements = SnapshotRequestableRoleEntitlements.new(client.requestable_role_entitlements)
  @resources = SnapshotResources.new(client.resources)
  @role_resources = SnapshotRoleResources.new(client.role_resources)
  @secret_stores = SnapshotSecretStores.new(client.secret_stores)
  @workflow_approvers = SnapshotWorkflowApprovers.new(client.workflow_approvers)
  @workflow_roles = SnapshotWorkflowRoles.new(client.workflow_roles)
  @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.



705
706
707
# File 'lib/strongdm.rb', line 705

def access_requests
  @access_requests
end

#account_attachmentsObject (readonly)

AccountAttachments assign an account to a role.

See SDM::SnapshotAccountAttachments.



709
710
711
# File 'lib/strongdm.rb', line 709

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.



713
714
715
# File 'lib/strongdm.rb', line 713

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.



718
719
720
# File 'lib/strongdm.rb', line 718

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.



723
724
725
# File 'lib/strongdm.rb', line 723

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.
  3. Tokens are access keys with permissions that can be used for authentication.

See SDM::SnapshotAccounts.



730
731
732
# File 'lib/strongdm.rb', line 730

def accounts
  @accounts
end

#accounts_groupsObject (readonly)

An AccountGroup links an account and a group.

See SDM::SnapshotAccountsGroups.



734
735
736
# File 'lib/strongdm.rb', line 734

def accounts_groups
  @accounts_groups
end

#approval_workflow_approversObject (readonly)

ApprovalWorkflowApprovers link approval workflow approvers to an ApprovalWorkflowStep

See SDM::SnapshotApprovalWorkflowApprovers.



738
739
740
# File 'lib/strongdm.rb', line 738

def approval_workflow_approvers
  @approval_workflow_approvers
end

#approval_workflow_stepsObject (readonly)

ApprovalWorkflowSteps link approval workflow steps to an ApprovalWorkflow

See SDM::SnapshotApprovalWorkflowSteps.



742
743
744
# File 'lib/strongdm.rb', line 742

def approval_workflow_steps
  @approval_workflow_steps
end

#approval_workflowsObject (readonly)

ApprovalWorkflows are the mechanism by which requests for access can be viewed by authorized approvers and be approved or denied.

See SDM::SnapshotApprovalWorkflows.



747
748
749
# File 'lib/strongdm.rb', line 747

def approval_workflows
  @approval_workflows
end

#discovery_connectorsObject (readonly)

A Discovery Connector is a configuration object for performing Resource Scans in remote systems such as AWS, GCP, Azure, and other systems.

See SDM::SnapshotDiscoveryConnectors.



752
753
754
# File 'lib/strongdm.rb', line 752

def discovery_connectors
  @discovery_connectors
end

#granted_account_entitlementsObject (readonly)

GrantedAccountEntitlements enumerates the resources to which an account has been granted access. The GrantedAccountEntitlements service is read-only.

See SDM::SnapshotGrantedAccountEntitlements.



757
758
759
# File 'lib/strongdm.rb', line 757

def 
  @granted_account_entitlements
end

#granted_resource_entitlementsObject (readonly)

GrantedResourceEntitlements enumerates the accounts that have been granted access to a given resource. The GrantedResourceEntitlements service is read-only.

See SDM::SnapshotGrantedResourceEntitlements.



762
763
764
# File 'lib/strongdm.rb', line 762

def granted_resource_entitlements
  @granted_resource_entitlements
end

#granted_role_entitlementsObject (readonly)

GrantedRoleEntitlements enumerates the resources to which a role grants access. The GrantedRoleEntitlements service is read-only.

See SDM::SnapshotGrantedRoleEntitlements.



767
768
769
# File 'lib/strongdm.rb', line 767

def granted_role_entitlements
  @granted_role_entitlements
end

#groupsObject (readonly)

A Group is a set of principals.

See SDM::SnapshotGroups.



777
778
779
# File 'lib/strongdm.rb', line 777

def groups
  @groups
end

#groups_rolesObject (readonly)

A GroupRole is an assignment of a Group to a Role.

See SDM::SnapshotGroupsRoles.



781
782
783
# File 'lib/strongdm.rb', line 781

def groups_roles
  @groups_roles
end

#identity_aliasesObject (readonly)

IdentityAliases assign an alias to an account within an IdentitySet. The alias is used as the username when connecting to a identity supported resource.

See SDM::SnapshotIdentityAliases.



786
787
788
# File 'lib/strongdm.rb', line 786

def identity_aliases
  @identity_aliases
end

#identity_setsObject (readonly)

A IdentitySet is a named grouping of Identity Aliases for Accounts. An Account's relationship to a IdentitySet is defined via IdentityAlias objects.

See SDM::SnapshotIdentitySets.



791
792
793
# File 'lib/strongdm.rb', line 791

def identity_sets
  @identity_sets
end

#nodesObject (readonly)

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

  1. Relay: creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
  2. Gateway: a relay that also listens for connections from StrongDM clients
  3. Proxy Cluster: a cluster of workers that together mediate access from clients to resources

See SDM::SnapshotNodes.



799
800
801
# File 'lib/strongdm.rb', line 799

def nodes
  @nodes
end

#policiesObject (readonly)

Policies are the collection of one or more statements that enforce fine-grained access control for the users of an organization.

See SDM::SnapshotPolicies.



804
805
806
# File 'lib/strongdm.rb', line 804

def policies
  @policies
end

#proxy_cluster_keysObject (readonly)

Proxy Cluster Keys are authentication keys for all proxies within a cluster. The proxies within a cluster share the same key. One cluster can have multiple keys in order to facilitate key rotation.

See SDM::SnapshotProxyClusterKeys.



810
811
812
# File 'lib/strongdm.rb', line 810

def proxy_cluster_keys
  @proxy_cluster_keys
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.



814
815
816
# File 'lib/strongdm.rb', line 814

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.



819
820
821
# File 'lib/strongdm.rb', line 819

def remote_identity_groups
  @remote_identity_groups
end

#requestable_account_entitlementsObject (readonly)

RequestableAccountEntitlements enumerates the resources that an account is permitted to request access to. The RequestableAccountEntitlements service is read-only.

See SDM::SnapshotRequestableAccountEntitlements.



824
825
826
# File 'lib/strongdm.rb', line 824

def 
  @requestable_account_entitlements
end

#requestable_resource_entitlementsObject (readonly)

RequestableResourceEntitlements enumerates the accounts that are permitted to request access to a given resource. The RequestableResourceEntitlements service is read-only.

See SDM::SnapshotRequestableResourceEntitlements.



829
830
831
# File 'lib/strongdm.rb', line 829

def requestable_resource_entitlements
  @requestable_resource_entitlements
end

#requestable_role_entitlementsObject (readonly)

RequestableRoleEntitlements enumerates the resources that a role permits its members to request access to. The RequestableRoleEntitlements service is read-only.

See SDM::SnapshotRequestableRoleEntitlements.



834
835
836
# File 'lib/strongdm.rb', line 834

def requestable_role_entitlements
  @requestable_role_entitlements
end

#resourcesObject (readonly)

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

See SDM::SnapshotResources.



839
840
841
# File 'lib/strongdm.rb', line 839

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.



844
845
846
# File 'lib/strongdm.rb', line 844

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.



773
774
775
# File 'lib/strongdm.rb', line 773

def roles
  @roles
end

#secret_storesObject (readonly)

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

See SDM::SnapshotSecretStores.



848
849
850
# File 'lib/strongdm.rb', line 848

def secret_stores
  @secret_stores
end

#workflow_approversObject (readonly)

WorkflowApprovers is an account or a role with the ability to approve requests bound to a workflow.

See SDM::SnapshotWorkflowApprovers.



852
853
854
# File 'lib/strongdm.rb', line 852

def workflow_approvers
  @workflow_approvers
end

#workflow_rolesObject (readonly)

WorkflowRole links a role to a workflow. The linked roles indicate which roles a user must be a part of to request access to a resource via the workflow.

See SDM::SnapshotWorkflowRoles.



857
858
859
# File 'lib/strongdm.rb', line 857

def workflow_roles
  @workflow_roles
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 be automatic approval or a set of users authorized to approve the requests.

See SDM::SnapshotWorkflows.



863
864
865
# File 'lib/strongdm.rb', line 863

def workflows
  @workflows
end