SSIS best practice to allow easily swappable/ secure/ accessible Database Connections?
When the packages are deploy to and executed from the SSIS Catalog variables from an Environment can be used to store credentials such as those you mentioned, with these then used by the connection managers of packages.  Once the value of an environment variable is changed, this is propagated to all packages using this variable.  For instance, if you had a variable called "Server" that's used as the ServerName property of a connection manager, and you updated it to hold production server name instead of the test one all packages with this would now be pointed to the prod server.  Additionally, environments can also be created for test, development, prod, etc., with the referenced environment on the package then updated to point to a different environment.  The variables can also be marked as sensitive to protect information such as passwords.  If you haven't installed the catalog (SSISDB), I'd recommend doing so.  You can learn more about the SSIS Catalog here.  A high level overview of configuring a connection manager to reference an environment variable is below.


Right click the package (or project) and select Configure.  Then on the References pane press Add and choose the environment you created.
Still on the Configure page, go back to the Parameters pane, then the Connection Managers tab.  For the connection manager that will be configured, select the property that will be set from an environment variable by clicking the ellipsis next to the property and select the appropriate environment variables on the next window that is displayed.
When running a package that references an environment from SQL Agent make sure to update the job step that calls the package with an environment reference.  This can be done on the Job Step by going to the Configuration tab, checking the Environment check-box and selecting the referenced environment.