Skip to main content
Session logs are a paid feature.If you’re using Infisical Cloud, they’re available under the Enterprise Tier. If you’re self-hosting Infisical, contact [email protected] to purchase an enterprise license to use them.
A session log is a record of every request an agent makes during a session: the method, host, path, status code, and whether the proxy attached a credential. The proxy adds every request it receives to the session log, including requests to hosts that no access bundle covers. The proxy encrypts the records before they leave your network and uploads them to an Amazon S3 bucket you own.

Setting up session logs

Infisical reaches your bucket through an AWS app connection, which signs in to AWS by assuming an IAM role you create. You’ll switch between Infisical and AWS during setup: Infisical generates the AWS policy for your bucket, you set up the bucket and role in AWS, and then you create the connection in Infisical with the role’s ARN.

Prerequisites

  • The Admin role in Agent Vault
  • An Amazon S3 bucket to store the records in
  • Permission in AWS to edit the bucket’s CORS configuration, create IAM roles, and attach policies to them

Step 1: Start in Infisical

1
In Agent Vault, go to Administration > Settings and select Set Up Session Logs.
2
Enter the Region and Bucket of your S3 bucket.
3
Optionally, enter a Key Prefix to store session logs under one path in a bucket you also use for other data.
4
Select View AWS Setup. Infisical shows an IAM policy with your bucket and key prefix already filled in, so you can paste it into AWS as it is.
Leave the Session Logs dialog open. You’ll fill in AWS Connection in Step 3, after you create the role it uses. Open AWS in another browser tab.

Step 2: Set up in AWS

Add a CORS rule to the bucket

Your browser downloads session logs directly from your bucket, so the bucket has to accept requests from Infisical. Add a CORS rule for Infisical to the bucket.
1
In the Amazon S3 console, open the session logs bucket, go to Permissions, and select Edit under Cross-origin resource sharing (CORS).
2
Paste this rule, then select Save changes. If the bucket already has CORS rules, add this rule’s object to the existing array instead of replacing it, so other applications that use the bucket keep working:
If you self-host Infisical or use a dedicated instance, replace AllowedOrigins with your instance’s URL.

Create an IAM role for Infisical

If you already have an AWS app connection you want to use, skip to Attach the IAM policy.
Infisical assumes this role to write session logs to the bucket.
To assume a role, your Infisical instance needs AWS credentials of its own.If your instance runs on AWS (for example on EC2, ECS, or EKS), leave INF_APP_CONNECTION_AWS_ACCESS_KEY_ID and INF_APP_CONNECTION_AWS_SECRET_ACCESS_KEY unset. Infisical then uses the credentials of the instance profile, task role, or IAM role for service accounts (IRSA), and that role needs the sts:AssumeRole policy below.If your instance doesn’t run on AWS, give it an IAM user:
1
In the IAM console, create an IAM user for your Infisical instance.
2
Attach this inline policy to the user, so it can assume the roles your connections use:
3
Open the user’s Security credentials tab and create an access key.Access Key Step 1Access Key Step 2Access Key Step 3
4
Set the access key ID as INF_APP_CONNECTION_AWS_ACCESS_KEY_ID and the secret access key as INF_APP_CONNECTION_AWS_SECRET_ACCESS_KEY in your instance’s environment, then restart the instance.
When you create the role’s trust policy, enter the AWS account ID of this IAM user or instance role, not an Infisical Cloud account ID.
1
In the IAM console, go to Create role. Under Trusted entity type, select AWS account.IAM Role Creation
2
Select Another AWS account, and enter the AWS account ID that Infisical assumes the role from:
  • Infisical Cloud (US): 381492033652
  • Infisical Cloud (EU): 345594589636
  • Dedicated instance: contact Infisical support for your account ID
  • Self-hosted: the account ID of your instance’s credentials (see If you self-host Infisical)
3
Select Next to go to the Add permissions page. Then, select Next again without choosing a policy. You’ll add the permissions as an inline policy after the role exists.
4
Enter a Role name that includes Infisical and what the connection is for, such as infisical-payments-prod, then select Create role. CloudTrail logs every action Infisical takes under this role’s name, so a descriptive name shows anyone reading the logs where those actions came from.

Attach the IAM policy

Attach the IAM policy from Step 1 to the IAM role, or to the role or user your existing connection signs in as.
1
In the IAM console, open the role or user. On the Permissions tab, select Add permissions > Create inline policy, switch to the JSON editor, and paste the policy.
2
Select Next, enter a Policy name, then select Create policy.
3
If you created a new role, copy its ARN from the Summary section.Copy IAM Role ARN

Step 3: Finish in Infisical

Go back to the Session Logs dialog.
1
Under AWS Connection, select Create New Connection.
If you already have an AWS app connection you want to use, select it here instead. Then, select Save and skip the remaining steps.
2
Enter a Name, keep the Assume Role (Recommended) method, paste the role’s ARN into Role ARN, and select Connect to AWS. Infisical creates the connection in Agent Vault and selects it.
3
Select Save.
The Session Logs dialog with Enable turned on and an AWS connection, region, bucket, and key prefix filled in
When you save, Infisical checks that the bucket exists and that the IAM user or role can write to it. If either check fails, Infisical shows the error and doesn’t save the settings. If your browser can’t read from the bucket, the Session Logs card shows a warning after you save.
You’ve successfully set up session logs within Agent Vault.

Viewing session logs

You can view a session’s logs if you created the session or you’re an Agent Vault admin.
Go to Sessions and select View Session Logs on the session’s row. You can filter and search the requests, and while the session is active, new requests appear as the proxy uploads them.
The Session Logs sheet for an active session, listing each request's time, method, host, path, upstream status, and outcome

What gets recorded

Each request produces one record with: The outcome is one of four: Request and response bodies, headers, and query strings aren’t recorded.

Managing session logs

Connections

Session logs use one AWS connection at a time, which you select in the Session Logs dialog. To update the connection’s AWS credentials, open the menu next to Configure on the Session Logs card and select Edit AWS Credentials. If the connection belongs to your organization, update its credentials under Integrations in your organization instead. To add or delete Agent Vault’s AWS connections, select Manage Connections from the same menu:
The Manage Connections sheet listing Agent Vault's AWS connections, with the one session logs use marked In Use
You can’t delete a connection while session logs use it. To delete the connection, select a different one in the Session Logs dialog first.

Changing the bucket or prefix

Infisical doesn’t copy existing records when you change the bucket or the key prefix. Records written before the change don’t show in Infisical until you switch back to that bucket and prefix.

Retention

Infisical never deletes sessions or their session logs. To delete older logs automatically, add an S3 Lifecycle rule to the bucket. Don’t modify or add files under the key prefix or bucket that session logs use. Restrict who in your AWS account can delete or overwrite these files.

Troubleshooting

If the AWS connection returns an error, a red alert icon appears next to Settings in the Agent Vault sidebar, and the Settings page shows the error.