Membuat permintaan menggunakan kredensial sementara pengguna gabungan - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat permintaan menggunakan kredensial sementara pengguna gabungan

Anda dapat meminta kredensi keamanan sementara dan memberikannya kepada pengguna atau aplikasi federasi Anda yang perlu mengakses sumber daya Anda. AWS Bagian ini memberikan contoh bagaimana Anda dapat menggunakan AWS SDK untuk mendapatkan kredenal keamanan sementara bagi pengguna atau aplikasi federasi Anda dan mengirim permintaan yang diautentikasi ke Amazon S3 menggunakan kredensi tersebut. Untuk daftar AWS SDK yang tersedia, lihat Contoh Kode dan Pustaka.

catatan

Baik pengguna IAM Akun AWS maupun IAM dapat meminta kredensi keamanan sementara untuk pengguna federasi. Namun, untuk keamanan tambahan, hanya pengguna IAM dengan izin yang diperlukan yang harus meminta kredensial sementara ini untuk memastikan bahwa pengguna gabungan mendapatkan paling banyak izin dari pengguna IAM yang meminta. Dalam beberapa aplikasi, Anda mungkin menganggapnya sesuai untuk membuat pengguna IAM dengan izin tertentu semata-mata untuk tujuan memberikan kredensial keamanan sementara kepada pengguna gabungan dan aplikasi Anda.

Java

Anda dapat memberikan kredensi keamanan sementara untuk pengguna dan aplikasi federasi Anda sehingga mereka dapat mengirim permintaan yang diautentikasi untuk mengakses sumber daya Anda. AWS Saat meminta kredensial sementara ini, Anda harus memberikan nama pengguna dan kebijakan IAM yang menjelaskan izin sumber daya yang ingin Anda berikan. Secara default, durasi sesi adalah satu jam. Anda dapat secara eksplisit mengatur nilai durasi yang berbeda ketika meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi.

catatan

Untuk keamanan tambahan saat meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi, kami menyarankan agar Anda menggunakan pengguna IAM khusus hanya dengan izin akses yang diperlukan. Pengguna sementara yang Anda buat tidak akan pernah mendapatkan izin lebih dari pengguna IAM yang meminta kredensial keamanan sementara. Untuk informasi selengkapnya, lihat FAQ AWS Identity and Access Management.

Untuk memberikan kredensial keamanan dan mengirimkan permintaan terautentikasi untuk mengakses sumber daya, lakukan hal berikut:

  • Buat instans dari kelas AWSSecurityTokenServiceClient.

  • Mulai sesi dengan memanggil metode getFederationToken() klien Security Token Service (STS). Berikan informasi sesi, termasuk nama pengguna dan kebijakan IAM, yang ingin Anda lampirkan ke kredensial sementara. Anda dapat memberikan durasi sesi opsional. Metode tersebut mengembalikan kredensial keamanan sementara Anda.

  • Kemas kredensial keamanan sementara dalam instans objek BasicSessionCredentials. Anda menggunakan objek ini untuk menyediakan kredensial keamanan sementara kepada klien Amazon S3.

  • Buat instans kelas AmazonS3Client dengan menggunakan kredensial keamanan sementara. Anda mengirim permintaan ke Amazon S3 menggunakan klien ini. Jika Anda mengirim permintaan menggunakan kredensial kedaluwarsa, Amazon S3 akan menampilkan pesan kesalahan.

Contoh ini mencantumkan kunci dalam bucket S3 yang ditentukan. Dalam contoh, Anda memperoleh kredensial keamanan sementara untuk sesi dua jam bagi pengguna gabungan Anda dan menggunakan kredensial untuk mengirim permintaan yang diautentikasi ke Amazon S3. Untuk menjalankan contoh, Anda perlu membuat pengguna IAM dengan kebijakan terlampir yang memungkinkan pengguna untuk meminta kredensi keamanan sementara dan daftar sumber daya Anda. AWS Kebijakan berikut mencapai hal ini:

{ "Statement":[{ "Action":["s3:ListBucket", "sts:GetFederationToken*" ], "Effect":"Allow", "Resource":"*" } ] }

Untuk informasi selengkapnya tentang cara membuat pengguna IAM, lihat Membuat Grup Pengguna dan Administrator IAM Pertama Anda dalam Panduan Pengguna IAM.

Setelah membuat pengguna IAM dan melampirkan kebijakan sebelumnya, Anda dapat menjalankan contoh berikut. Untuk petunjuk cara membuat dan menguji sampel yang berfungsi, lihat Memulai di Panduan AWS SDK for Java Pengembang.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicSessionCredentials; import com.amazonaws.auth.policy.Policy; import com.amazonaws.auth.policy.Resource; import com.amazonaws.auth.policy.Statement; import com.amazonaws.auth.policy.Statement.Effect; import com.amazonaws.auth.policy.actions.S3Actions; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.securitytoken.AWSSecurityTokenService; import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClientBuilder; import com.amazonaws.services.securitytoken.model.Credentials; import com.amazonaws.services.securitytoken.model.GetFederationTokenRequest; import com.amazonaws.services.securitytoken.model.GetFederationTokenResult; import java.io.IOException; public class MakingRequestsWithFederatedTempCredentials { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Specify bucket name ***"; String federatedUser = "*** Federated user name ***"; String resourceARN = "arn:aws:s3:::" + bucketName; try { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder .standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); GetFederationTokenRequest getFederationTokenRequest = new GetFederationTokenRequest(); getFederationTokenRequest.setDurationSeconds(7200); getFederationTokenRequest.setName(federatedUser); // Define the policy and add it to the request. Policy policy = new Policy(); policy.withStatements(new Statement(Effect.Allow) .withActions(S3Actions.ListObjects) .withResources(new Resource(resourceARN))); getFederationTokenRequest.setPolicy(policy.toJson()); // Get the temporary security credentials. GetFederationTokenResult federationTokenResult = stsClient.getFederationToken(getFederationTokenRequest); Credentials sessionCredentials = federationTokenResult.getCredentials(); // Package the session credentials as a BasicSessionCredentials // object for an Amazon S3 client object to use. BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials( sessionCredentials.getAccessKeyId(), sessionCredentials.getSecretAccessKey(), sessionCredentials.getSessionToken()); AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(basicSessionCredentials)) .withRegion(clientRegion) .build(); // To verify that the client works, send a listObjects request using // the temporary security credentials. ObjectListing objects = s3Client.listObjects(bucketName); System.out.println("No. of Objects = " + objects.getObjectSummaries().size()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Anda dapat memberikan kredensi keamanan sementara untuk pengguna dan aplikasi federasi Anda sehingga mereka dapat mengirim permintaan yang diautentikasi untuk mengakses sumber daya Anda. AWS Saat meminta kredensial sementara ini, Anda harus memberikan nama pengguna dan kebijakan IAM yang menjelaskan izin sumber daya yang ingin Anda berikan. Secara default, durasi sesi adalah satu jam. Anda dapat secara eksplisit mengatur nilai durasi yang berbeda ketika meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi. Untuk informasi tentang mengirim permintaan terautentikasi, lihat Membuat permintaan.

catatan

Saat meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi, untuk keamanan tambahan, kami sarankan Anda menggunakan pengguna IAM khusus hanya dengan izin akses yang diperlukan. Pengguna sementara yang Anda buat tidak akan pernah mendapatkan izin lebih dari pengguna IAM yang meminta kredensial keamanan sementara. Untuk informasi selengkapnya, lihat FAQ AWS Identity and Access Management.

Anda melakukan hal berikut:

  • Buat instance AWS Security Token Service klien, AmazonSecurityTokenServiceClient kelas.

  • Mulai sesi dengan memanggil metode GetFederationToken klien STS. Anda perlu memberikan informasi sesi, termasuk nama pengguna dan kebijakan IAM yang ingin Anda lampirkan ke kredensial sementara. Atau, Anda dapat memberikan durasi sesi. Metode tersebut mengembalikan kredensial keamanan sementara Anda.

  • Kemas kredensial keamanan sementara dalam instans objek SessionAWSCredentials. Anda menggunakan objek ini untuk menyediakan kredensial keamanan sementara kepada klien Amazon S3.

  • Buat instans kelas AmazonS3Client dengan menyerahkan kredensial keamanan sementara. Anda menggunakan klien ini untuk mengirim permintaan ke Amazon S3. Jika Anda mengirim permintaan menggunakan kredensial kedaluwarsa, Amazon S3 akan menampilkan pesan kesalahan.

Contoh C# berikut mencantumkan kunci dalam bucket yang ditentukan. Dalam contoh, Anda memperoleh kredensial keamanan sementara untuk sesi dua jam bagi pengguna gabungan (Pengguna 1) Anda dan menggunakan kredensial untuk mengirim permintaan yang diautentikasi ke Amazon S3.

  • Untuk latihan ini, Anda membuat pengguna IAM dengan izin minimal. Dengan menggunakan kredensial pengguna IAM ini, Anda meminta kredensial sementara untuk orang lain. Contoh ini hanya mencantumkan objek dalam bucket tertentu. Buat pengguna IAM dengan kebijakan berikut terlampir:

    { "Statement":[{ "Action":["s3:ListBucket", "sts:GetFederationToken*" ], "Effect":"Allow", "Resource":"*" } ] }

    Kebijakan ini memungkinkan pengguna IAM untuk meminta kredenial keamanan sementara dan izin akses hanya untuk mencantumkan sumber daya Anda. AWS Untuk informasi selengkapnya tentang cara membuat pengguna IAM, lihat Membuat Grup Pengguna dan Administrator IAM Anda dalam Panduan Pengguna IAM.

  • Gunakan kredensial keamanan pengguna IAM untuk menguji contoh berikut. Contoh tersebut mengirimkan permintaan terautentikasi ke Amazon S3 menggunakan kredensial keamanan sementara. Contoh tersebut menentukan kebijakan berikut ketika meminta kredensial keamanan sementara untuk pengguna gabungan (Pengguna1), yang membatasi akses untuk mencantumkan objek dalam bucket tertentu (YourBucketName). Anda harus memperbarui kebijakan dan memberikan nama bucket Anda sendiri.

    { "Statement":[ { "Sid":"1", "Action":["s3:ListBucket"], "Effect":"Allow", "Resource":"arn:aws:s3:::YourBucketName" } ] }
  • Perbarui sampel berikut dan berikan nama bucket yang Anda tentukan dalam kebijakan akses pengguna gabungan sebelumnya. Untuk informasi tentang menyiapkan dan menjalankan contoh kode, lihat Memulai SDK for .NET di AWSAWS SDK for .NET Developer Guide.

    using Amazon; using Amazon.Runtime; using Amazon.S3; using Amazon.S3.Model; using Amazon.SecurityToken; using Amazon.SecurityToken.Model; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class TempFederatedCredentialsTest { private const string bucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { ListObjectsAsync().Wait(); } private static async Task ListObjectsAsync() { try { Console.WriteLine("Listing objects stored in a bucket"); // Credentials use the default AWS SDK for .NET credential search chain. // On local development machines, this is your default profile. SessionAWSCredentials tempCredentials = await GetTemporaryFederatedCredentialsAsync(); // Create a client by providing temporary security credentials. using (client = new AmazonS3Client(bucketRegion)) { ListObjectsRequest listObjectRequest = new ListObjectsRequest(); listObjectRequest.BucketName = bucketName; ListObjectsResponse response = await client.ListObjectsAsync(listObjectRequest); List<S3Object> objects = response.S3Objects; Console.WriteLine("Object count = {0}", objects.Count); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } private static async Task<SessionAWSCredentials> GetTemporaryFederatedCredentialsAsync() { AmazonSecurityTokenServiceConfig config = new AmazonSecurityTokenServiceConfig(); AmazonSecurityTokenServiceClient stsClient = new AmazonSecurityTokenServiceClient( config); GetFederationTokenRequest federationTokenRequest = new GetFederationTokenRequest(); federationTokenRequest.DurationSeconds = 7200; federationTokenRequest.Name = "User1"; federationTokenRequest.Policy = @"{ ""Statement"": [ { ""Sid"":""Stmt1311212314284"", ""Action"":[""s3:ListBucket""], ""Effect"":""Allow"", ""Resource"":""arn:aws:s3:::" + bucketName + @""" } ] } "; GetFederationTokenResponse federationTokenResponse = await stsClient.GetFederationTokenAsync(federationTokenRequest); Credentials credentials = federationTokenResponse.Credentials; SessionAWSCredentials sessionCredentials = new SessionAWSCredentials(credentials.AccessKeyId, credentials.SecretAccessKey, credentials.SessionToken); return sessionCredentials; } } }
PHP

Topik ini menjelaskan cara menggunakan kelas dari versi 3 AWS SDK for PHP untuk meminta kredenal keamanan sementara untuk pengguna dan aplikasi federasi dan menggunakannya untuk mengakses sumber daya yang disimpan di Amazon S3. Untuk informasi selengkapnya tentang AWS SDK for Ruby API, AWS buka SDK for Ruby - Versi 2.

Anda dapat memberikan kredensi keamanan sementara kepada pengguna dan aplikasi federasi Anda sehingga mereka dapat mengirim permintaan yang diautentikasi untuk mengakses sumber daya Anda. AWS Saat meminta kredensial sementara ini, Anda harus memberikan nama pengguna dan kebijakan IAM yang menjelaskan izin sumber daya yang ingin Anda berikan. Kredensial ini berakhir saat durasi sesi berakhir. Secara default, durasi sesi adalah satu jam. Anda dapat secara eksplisit mengatur nilai yang berbeda selama durasi saat meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi. Untuk informasi selengkapnya tentang kredensial keamanan sementara, lihat Kredensial Keamanan Sementara dalam Panduan Pengguna IAM. Untuk informasi tentang penyediaan kredensial keamanan sementara bagi pengguna gabungan dan aplikasi Anda, lihat Membuat permintaan.

Untuk keamanan tambahan saat meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi, kami menyarankan untuk menggunakan pengguna IAM khusus hanya dengan izin akses yang diperlukan. Pengguna sementara yang Anda buat tidak akan pernah mendapatkan izin lebih dari pengguna IAM yang meminta kredensial keamanan sementara. Untuk informasi tentang federasi identitas, lihat FAQ AWS Identity and Access Management.

Untuk informasi selengkapnya tentang AWS SDK for Ruby API, AWS buka SDK for Ruby - Versi 2.

contoh

Contoh PHP berikut ini mencantumkan kunci dalam bucket yang ditentukan. Dalam contoh ini, Anda memperoleh kredensial keamanan sementara untuk satu sesi jam bagi pengguna gabungan Anda (Pengguna1). Kemudian Anda menggunakan kredensial keamanan sementara untuk mengirim permintaan terautentikasi ke Amazon S3.

Untuk keamanan tambahan saat meminta kredensial sementara untuk orang lain, Anda menggunakan kredensial keamanan pengguna IAM yang memiliki izin untuk meminta kredensial keamanan sementara. Untuk memastikan bahwa pengguna IAM hanya memberikan izin spesifik aplikasi minimum kepada pengguna gabungan, Anda juga dapat membatasi izin akses pengguna IAM ini. Contoh ini hanya mencantumkan objek dalam bucket tertentu. Buat pengguna IAM dengan kebijakan berikut terlampir:

{ "Statement":[{ "Action":["s3:ListBucket", "sts:GetFederationToken*" ], "Effect":"Allow", "Resource":"*" } ] }

Kebijakan ini memungkinkan pengguna IAM untuk meminta kredenial keamanan sementara dan izin akses hanya untuk mencantumkan sumber daya Anda. AWS Untuk informasi selengkapnya tentang cara membuat pengguna IAM, lihat Membuat Grup Pengguna dan Administrator IAM Pertama Anda dalam Panduan Pengguna IAM.

Sekarang Anda dapat menggunakan kredensial keamanan pengguna IAM untuk menguji contoh berikut. Contoh tersebut mengirimkan permintaan terautentikasi ke Amazon S3 menggunakan kredensial keamanan sementara. Ketika meminta kredensial keamanan sementara untuk pengguna gabungan (Pengguna1), contoh tersebut menentukan kebijakan berikut, yang membatasi akses ke objek daftar dalam bucket tertentu. Perbarui kebijakan dengan nama bucket Anda.

{ "Statement":[ { "Sid":"1", "Action":["s3:ListBucket"], "Effect":"Allow", "Resource":"arn:aws:s3:::YourBucketName" } ] }

Dalam contoh berikut, ketika menentukan sumber daya kebijakan, ganti YourBucketName dengan nama bucket Anda.:

require 'vendor/autoload.php'; use Aws\S3\Exception\S3Exception; use Aws\S3\S3Client; use Aws\Sts\StsClient; $bucket = '*** Your Bucket Name ***'; // In real applications, the following code is part of your trusted code. It has // the security credentials that you use to obtain temporary security credentials. $sts = new StsClient([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Fetch the federated credentials. $sessionToken = $sts->getFederationToken([ 'Name' => 'User1', 'DurationSeconds' => '3600', 'Policy' => json_encode([ 'Statement' => [ 'Sid' => 'randomstatementid' . time(), 'Action' => ['s3:ListBucket'], 'Effect' => 'Allow', 'Resource' => 'arn:aws:s3:::' . $bucket ] ]) ]); // The following will be part of your less trusted code. You provide temporary // security credentials so the code can send authenticated requests to Amazon S3. $s3 = new S3Client([ 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => [ 'key' => $sessionToken['Credentials']['AccessKeyId'], 'secret' => $sessionToken['Credentials']['SecretAccessKey'], 'token' => $sessionToken['Credentials']['SessionToken'] ] ]); try { $result = $s3->listObjects([ 'Bucket' => $bucket ]); } catch (S3Exception $e) { echo $e->getMessage() . PHP_EOL; }
Ruby

Anda dapat memberikan kredensi keamanan sementara untuk pengguna dan aplikasi federasi Anda sehingga mereka dapat mengirim permintaan yang diautentikasi untuk mengakses sumber daya Anda. AWS Saat meminta kredensial sementara dari layanan IAM, Anda harus memberikan nama pengguna dan kebijakan IAM yang menjelaskan izin sumber daya yang ingin Anda berikan. Secara default, durasi sesi adalah satu jam. Namun, jika Anda meminta kredensial sementara menggunakan kredensial pengguna IAM, Anda dapat secara eksplisit mengatur nilai durasi yang berbeda ketika meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi. Untuk informasi tentang kredensial keamanan sementara untuk pengguna dan aplikasi gabungan Anda, lihat Membuat permintaan.

catatan

Untuk keamanan tambahan ketika Anda meminta kredensial keamanan sementara untuk pengguna gabungan dan aplikasi, Anda mungkin ingin menggunakan pengguna IAM khusus hanya dengan izin akses yang diperlukan. Pengguna sementara yang Anda buat tidak akan pernah mendapatkan izin lebih dari pengguna IAM yang meminta kredensial keamanan sementara. Untuk informasi selengkapnya, lihat FAQ AWS Identity and Access Management.

contoh

Contoh kode Ruby berikut memungkinkan pengguna gabungan dengan set izin terbatas untuk mencantumkan kunci dalam bucket tertentu.

# Prerequisites: # - An existing Amazon S3 bucket. require "aws-sdk-s3" require "aws-sdk-iam" require "json" # Checks to see whether a user exists in IAM; otherwise, # creates the user. # # @param iam [Aws::IAM::Client] An initialized IAM client. # @param user_name [String] The user's name. # @return [Aws::IAM::Types::User] The existing or new user. # @example # iam = Aws::IAM::Client.new(region: 'us-west-2') # user = get_user(iam, 'my-user') # exit 1 unless user.user_name # puts "User's name: #{user.user_name}" def get_user(iam, user_name) puts "Checking for a user with the name '#{user_name}'..." response = iam.get_user(user_name: user_name) puts "A user with the name '#{user_name}' already exists." return response.user # If the user doesn't exist, create them. rescue Aws::IAM::Errors::NoSuchEntity puts "A user with the name '#{user_name}' doesn't exist. Creating this user..." response = iam.create_user(user_name: user_name) iam.wait_until(:user_exists, user_name: user_name) puts "Created user with the name '#{user_name}'." return response.user rescue StandardError => e puts "Error while accessing or creating the user named '#{user_name}': #{e.message}" end # Gets temporary AWS credentials for an IAM user with the specified permissions. # # @param sts [Aws::STS::Client] An initialized AWS STS client. # @param duration_seconds [Integer] The number of seconds for valid credentials. # @param user_name [String] The user's name. # @param policy [Hash] The access policy. # @return [Aws::STS::Types::Credentials] AWS credentials for API authentication. # @example # sts = Aws::STS::Client.new(region: 'us-west-2') # credentials = get_temporary_credentials(sts, duration_seconds, user_name, # { # 'Version' => '2012-10-17', # 'Statement' => [ # 'Sid' => 'Stmt1', # 'Effect' => 'Allow', # 'Action' => 's3:ListBucket', # 'Resource' => 'arn:aws:s3:::doc-example-bucket' # ] # } # ) # exit 1 unless credentials.access_key_id # puts "Access key ID: #{credentials.access_key_id}" def get_temporary_credentials(sts, duration_seconds, user_name, policy) response = sts.get_federation_token( duration_seconds: duration_seconds, name: user_name, policy: policy.to_json ) return response.credentials rescue StandardError => e puts "Error while getting federation token: #{e.message}" end # Lists the keys and ETags for the objects in an Amazon S3 bucket. # # @param s3_client [Aws::S3::Client] An initialized Amazon S3 client. # @param bucket_name [String] The bucket's name. # @return [Boolean] true if the objects were listed; otherwise, false. # @example # s3_client = Aws::S3::Client.new(region: 'us-west-2') # exit 1 unless list_objects_in_bucket?(s3_client, 'doc-example-bucket') def list_objects_in_bucket?(s3_client, bucket_name) puts "Accessing the contents of the bucket named '#{bucket_name}'..." response = s3_client.list_objects_v2( bucket: bucket_name, max_keys: 50 ) if response.count.positive? puts "Contents of the bucket named '#{bucket_name}' (first 50 objects):" puts "Name => ETag" response.contents.each do |obj| puts "#{obj.key} => #{obj.etag}" end else puts "No objects in the bucket named '#{bucket_name}'." end return true rescue StandardError => e puts "Error while accessing the bucket named '#{bucket_name}': #{e.message}" end # Example usage: def run_me region = "us-west-2" user_name = "my-user" bucket_name = "doc-example-bucket" iam = Aws::IAM::Client.new(region: region) user = get_user(iam, user_name) exit 1 unless user.user_name puts "User's name: #{user.user_name}" sts = Aws::STS::Client.new(region: region) credentials = get_temporary_credentials(sts, 3600, user_name, { "Version" => "2012-10-17", "Statement" => [ "Sid" => "Stmt1", "Effect" => "Allow", "Action" => "s3:ListBucket", "Resource" => "arn:aws:s3:::#{bucket_name}" ] } ) exit 1 unless credentials.access_key_id puts "Access key ID: #{credentials.access_key_id}" s3_client = Aws::S3::Client.new(region: region, credentials: credentials) exit 1 unless list_objects_in_bucket?(s3_client, bucket_name) end run_me if $PROGRAM_NAME == __FILE__

Sumber daya terkait