AWS::Signature4(3pm) | User Contributed Perl Documentation | AWS::Signature4(3pm) |
AWS::Signature4 - Create a version4 signature for Amazon Web Services
use AWS::Signature4; use HTTP::Request::Common; use LWP; my $signer = AWS::Signature4->new(-access_key => 'AKIDEXAMPLE', -secret_key => 'wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY'); my $ua = LWP::UserAgent->new(); # Example POST request my $request = POST('https://iam.amazonaws.com', [Action=>'ListUsers', Version=>'2010-05-08']); $signer->sign($request); my $response = $ua->request($request); # Example GET request my $uri = URI->new('https://iam.amazonaws.com'); $uri->query_form(Action=>'ListUsers', Version=>'2010-05-08'); my $url = $signer->signed_url($uri); # This gives a signed URL that can be fetched by a browser my $response = $ua->get($url);
This module implement's Amazon Web Service's Signature version 4 (http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
Arguments:
Argument name Argument Value ------------- -------------- -access_key An AWS access key (account ID) -secret_key An AWS secret key -security_token A VM::EC2::Security::Token object
If a security token is provided, it overrides any values given for -access_key or -secret_key.
If the environment variables EC2_ACCESS_KEY and/or EC2_SECRET_KEY are set, their contents are used as defaults for -access_key and -secret_key.
The request must include a URL from which the AWS endpoint and service can be derived, such as "ec2.us-east-1.amazonaws.com." In some cases (e.g. S3 bucket operations) the endpoint does not indicate the region. In this case, the region can be forced by passing a defined value for $region. The current date and time will be added to the request using an "X-Amz-Date header." To force the date and time to a fixed value, include the "Date" header in the request.
The request content, or "payload" is retrieved from the HTTP::Request object by calling its content() method.. Under some circumstances the payload is not included directly in the request, but is in an external file that will be uploaded as the request is executed. In this case, you must pass a second argument containing the results of running sha256_hex() (from the Digest::SHA module) on the content.
The method returns a true value if successful. On errors, it will throw an exception.
Pass an optional $expires argument to indicate that the URL will only be valid for a finite period of time. The value of the argument is in seconds.
VM::EC2
Lincoln Stein <lincoln.stein@gmail.com>.
Copyright (c) 2014 Ontario Institute for Cancer Research
This package and its accompanying libraries is free software; you can redistribute it and/or modify it under the terms of the GPL (either version 1, or at your option, any later version) or the Artistic License 2.0. Refer to LICENSE for the full license text. In addition, please see DISCLAIMER.txt for disclaimers of warranty.
2022-10-13 | perl v5.34.0 |