Vault
AliCloud auth method (API)
This is the API documentation for the Vault AliCloud auth method. For general information about the usage and operation of the AliCloud method, please see the Vault AliCloud auth method documentation.
This documentation assumes the AliCloud auth method is mounted at the /auth/alicloud
path in Vault. Since it is possible to enable auth methods at any location,
please update your API calls accordingly.
Create/Update role
Registers a role. Only entities using the role registered using this endpoint will be able to perform the login operation.
Method | Path |
---|---|
POST | /auth/alicloud/role/:role |
Parameters
role
(string: <required>)
- Name of the role. Must correspond with the name of the role reflected in the arn.arn
(string: <required>)
- The role's arn.
token_ttl
(integer: 0 or string: "")
- The incremental lifetime for generated tokens. This current value of this will be referenced at renewal time.token_max_ttl
(integer: 0 or string: "")
- The maximum lifetime for generated tokens. This current value of this will be referenced at renewal time.token_policies
(array: [] or comma-delimited string: "")
- List of token policies to encode onto generated tokens. Depending on the auth method, this list may be supplemented by user/group/other values.policies
(array: [] or comma-delimited string: "")
- DEPRECATED: Please use thetoken_policies
parameter instead. List of token policies to encode onto generated tokens. Depending on the auth method, this list may be supplemented by user/group/other values.
token_bound_cidrs
(array: [] or comma-delimited string: "")
- List of CIDR blocks; if set, specifies blocks of IP addresses which can authenticate successfully, and ties the resulting token to these blocks as well.token_explicit_max_ttl
(integer: 0 or string: "")
- If set, will encode an explicit max TTL onto the token. This is a hard cap even iftoken_ttl
andtoken_max_ttl
would otherwise allow a renewal.token_no_default_policy
(bool: false)
- If set, thedefault
policy will not be set on generated tokens; otherwise it will be added to the policies set intoken_policies
.token_num_uses
(integer: 0)
- The maximum number of times a generated token may be used (within its lifetime); 0 means unlimited. If you require the token to have the ability to create child tokens, you will need to set this value to 0.token_period
(integer: 0 or string: "")
- The maximum allowed period value when a periodic token is requested from this role.token_type
(string: "")
- The type of token that should be generated. Can beservice
,batch
, ordefault
to use the mount's tuned default (which unless changed will beservice
tokens). For token store roles, there are two additional possibilities:default-service
anddefault-batch
which specify the type to return unless the client requests a different type at generation time. For machine based authentication cases, you should usebatch
type tokens.
Sample payload
{
"arn": "acs:ram::5138828231865461:role/dev-role",
"policies": ["dev", "prod"]
}
Sample request
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/alicloud/role/dev-role
Read role
Returns the previously registered role configuration.
Method | Path |
---|---|
GET | /auth/alicloud/role/:role |
Parameters
role
(string: <required>)
- Name of the role.
Sample request
$ curl \
--header "X-Vault-Token: ..." \
http://127.0.0.1:8200/v1/auth/alicloud/role/dev-role
Sample response
{
"data": {
"arn": "acs:ram::5138828231865461:role/dev-role",
"policies": ["default", "dev", "prod"],
"ttl": 1800000,
"max_ttl": 1800000,
"period": 0
}
}
List roles
Lists all the roles that are registered with the method.
Method | Path |
---|---|
LIST | /auth/alicloud/roles |
Sample request
$ curl \
--header "X-Vault-Token: ..." \
--request LIST \
http://127.0.0.1:8200/v1/auth/alicloud/roles
Sample response
{
"data": {
"keys": ["dev-role", "prod-role"]
}
}
Delete role
Deletes the previously registered role.
Method | Path |
---|---|
DELETE | /auth/alicloud/role/:role |
Parameters
role
(string: <required>)
- Name of the role.
Sample request
$ curl \
--header "X-Vault-Token: ..." \
--request DELETE \
http://127.0.0.1:8200/v1/auth/alicloud/role/dev-role
Login
Fetch a token. This endpoint verifies the signature of the signed GetCallerIdentity request.
Method | Path |
---|---|
POST | /auth/alicloud/login |
Parameters
role
(string: <required>)
- Name of the role.identity_request_url
(string: <required>)
- Base64-encoded HTTP URL used in the signed request.identity_request_headers
(string: <required>)
- Base64-encoded, JSON-serialized representation of the sts:GetCallerIdentity HTTP request headers. The JSON serialization assumes that each header key maps to either a string value or an array of string values (though the length of that array will probably only be one).
Sample payload
{
"role": "dev-role",
"identity_request_url": "aWRlbnRpdHlabrVxdWVzdF91cmw=",
"identity_request_headers": "aWRlimRpdHlfcmVxdWVzdF9oZWFkZXJz"
}
Sample request
$ curl \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/auth/alicloud/login
Sample response
{
"auth": {
"renewable": true,
"lease_duration": 1800000,
"metadata": {
"role_tag_max_ttl": "0",
"instance_id": "i-de0f1344",
"ami_id": "ami-fce36983",
"role": "dev-role",
"auth_type": "ec2",
"account_id": "5138828231865461",
"user_id": "216959339000654321",
"role_id": "4657-abcd",
"arn": "acs:ram::5138828231865461:assumed-role/dev-role/vm-ram-i-rj978rorvlg76urhqh7q",
"identity_type": "assumed-role",
"principal_id": "vm-ram-i-rj978rorvlg76urhqh7q",
"request_id": "D6E46F10-F26C-4AA0-BB69-FE2743D9AE62",
"role_name": "dev-role"
},
"policies": ["default", "dev"],
"accessor": "20b89871-e6f2-1160-fb29-31c2f6d4645e",
"client_token": "d9368254-3f21-aded-8a6f-7c818e81b17a"
}
}