객체를 S3 버킷에 넣을 수 있습니다.
하지만 이제 다른 계정과 다른 리전에 속한 S3 버킷에 이러한 객체를 직접 넣어야한다는 요구 사항이 있습니다.
여기에 몇 가지 질문이 있습니다.
그들은 우리에게 액세스 키, 비밀 키, 지역 및 버킷 세부 정보를 제공했습니다.
모든 의견과 제안을 주시면 감사하겠습니다.
IAM 자격 증명은 단일 AWS 계정과 연결됩니다.
당신이 할당 된 IAM 역할로 자신의 아마존 EC2 인스턴스를 시작할 때와 연관된 액세스 자격 증명을 받게됩니다 귀하의 계정을.
다른 계정의 Amazon S3 버킷에 쓰려면 두 가지 옵션이 있습니다.
옵션 1 : 자격 증명 + 버킷 정책
대상 Amazon S3 버킷의 소유자는 IAM 역할의 액세스를 허용 하는 버킷 정책 을 버킷에 추가 할 수 있습니다 . 이렇게하면 EC2 인스턴스에서 사용할 수있는 일반 자격 증명 만 사용할 수 있습니다.
옵션 2 : 자격 증명
해당 계정에 대한 액세스 자격 증명을받은 것으로 보입니다 . 이러한 자격 증명을 사용하여 Amazon S3 버킷에 액세스 할 수 있습니다.
AWS 자격 증명 작업-Java 용 AWS SDK에 자세히 설명 된대로 이러한 자격 증명을 여러 가지 방법으로 제공 할 수 있습니다. 그러나 IAM 역할에서 제공 한 자격 증명과 제공된 자격 증명을 모두 사용하는 경우 두 가지를 '전환'하기 어려울 수 있습니다. (자격 증명 공급자에게 ~/.aws/credentials
파일에 저장된 프로필 과 인스턴스 메타 데이터를 통해 제공된 프로필간에 전환하도록 지시하는 방법이 있는지 확실하지 않습니다 .)
따라서 가장 쉬운 방법은 S3 클라이언트를 생성 할 때 액세스 키와 비밀 키 를 지정하는 것입니다 .
BasicAWSCredentials awsCreds = new BasicAWSCredentials("access_key_id", "secret_key_id");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
일반적으로 코드에 자격 증명을 넣는 것은 좋지 않습니다. 구성 파일에서로드해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다