Ozone S3 Security Token Service overview
The Ozone Security Token Service (STS) provides temporary, short-lived S3 credentials
(AccessKeyId, SecretAccessKey, SessionToken)
through the AWS-compatible AssumeRole API. It enables secure, fine-grained access
to Ozone buckets without exposing long-term principal credentials or Kerberos keytabs.
Typically, Ozone S3 credentials are tied to a Kerberos identity. STS introduces a programmatic method to obtain temporary credentials, which include an access key, a secret key, and a session token. These credentials inherit permissions from a Ranger role and can optionally be further restricted by an inline IAM session policy.
Key functionalities include:
- Dedicated endpoint: Runs on a dedicated port (separate from the S3 Gateway port).
- API support: Implements the AWS
AssumeRolespecification. - Authorization: Relies on Apache Ranger for role delegation and permission checking.
How Ozone STS works
The temporary credential generation and usage flow operates through the following steps:
- Request: A user with long-term credentials calls
AssumeRoleAPI on the STS endpoint. - Validation: Ozone validates the request signature and queries Apache Ranger to confirm the caller is permitted to assume the target role.
- Policy evaluation: If an optional inline IAM session policy is provided, Ozone intersects its permissions with the target Ranger role when the token is used.
- Credential issuance: Ozone returns the following short-lived
credentials:
AccessKeyId- Starting with the ASIA access key prefixSecretAccessKeySessionToken
- Access: The client performs standard S3 operations using the
temporary keys and including the
SessionTokenin thex-amz-security-tokenheader.
