Storage Browser for S3 설정 - Amazon Simple Storage Service

Storage Browser for S3 설정

최종 사용자를 Amazon S3 위치에 연결하려면 먼저 인증 및 권한 부여 방법을 설정해야 합니다. Storage Browser를 사용하여 인증 및 권한 부여 방법을 설정하는 방법에는 세 가지가 있습니다.

방법 1: 고객 및 타사 파트너의 데이터 액세스 관리

이 방법을 사용하면 AWS Amplify Auth를 사용하여 파일에 대한 액세스 제어 및 보안을 관리할 수 있습니다. 이 방법은 고객 또는 타사 파트너를 S3의 데이터와 연결하려는 경우에 적합합니다. 이 옵션을 사용하면 고객은 소셜 또는 엔터프라이즈 ID 제공업체를 사용하여 인증할 수 있습니다.

Amplify Storage를 사용하도록 구성된 S3 버킷과 함께 AWS Amplify Auth를 사용하여 최종 사용자 및 타사 파트너에게 IAM 자격 증명을 제공합니다. AWS Amplify Auth는 Amazon Cognito를 기반으로 구축되었습니다. 이 완전관리형 고객 ID 및 액세스 관리 서비스에서는 기본 제공 사용자 디렉터리 또는 엔터프라이즈 디렉터리 또는 소비자 ID 제공업체를 통해 사용자를 인증하고 권한을 부여할 수 있습니다. Amplify 권한 부여 모델은 현재 인증된 사용자가 액세스할 수 있는 접두사를 정의합니다. AWS Amplify에 대한 권한 부여를 설정하는 방법에 대한 자세한 내용은 Set up storage를 참조하세요.

Amplify 인증 및 스토리지 방법을 사용하여 구성 요소를 초기화하려면 웹 애플리케이션에 다음 코드 조각을 추가합니다.

import { createAmplifyAuthAdapter, createStorageBrowser, } from '@aws-amplify/ui-react-storage/browser'; import "@aws-amplify/ui-react-storage/styles.css"; import config from './amplify_outputs.json'; Amplify.configure(config); export const { StorageBrowser } = createStorageBrowser({ config: createAmplifyAuthAdapter(), });

방법 2: AWS 계정의 IAM 위탁자에 대한 데이터 액세스 관리

IAM 위탁자 또는 AWS 계정에 대한 액세스를 직접 관리하려면 GetDataAccess S3 API 작업을 간접 호출할 권한이 있는 IAM 역할을 생성하면 됩니다. 설정하려면 S3 버킷 및 접두사에 대한 권한을 지정된 IAM ID에 매핑하는 S3 Access Grants 인스턴스를 생성해야 합니다. 그러면 Storage Browser 구성 요소(IAM 자격 증명을 얻은 후 클라이언트 측에서 직접 호출해야 함)가 ListCallerAccessGrants S3 API 작업을 간접 호출하여 ID 요청자에게 사용 가능한 권한을 가져오고 구성 요소의 위치를 채웁니다. s3:GetDataAccess 권한을 얻으면 Storage Browser 구성 요소에서 이러한 자격 증명을 사용하여 S3에 대한 데이터 액세스를 요청합니다.

import { createManagedAuthAdapter, createStorageBrowser, } from '@aws-amplify/ui-react-storage/browser'; import "@aws-amplify/ui-react-storage/styles.css"; export const { StorageBrowser } = createStorageBrowser({ config: createManagedAuthAdapter({ credentialsProvider: async (options?: { forceRefresh?: boolean }) => { // return your credentials object return { credentials: { accessKeyId: 'my-access-key-id', secretAccessKey: 'my-secret-access-key', sessionToken: 'my-session-token', expiration: new Date() }, } }, // AWS `region` and `accountId` region: '', accountId: '', // call `onAuthStateChange` when end user auth state changes // to clear sensitive data from the `StorageBrowser` state registerAuthListener: (onAuthStateChange) => {}, }) });

방법 3: 대규모 데이터 액세스 관리

보다 확장 가능한 솔루션(예: 회사 전체에 데이터 액세스 제공)을 위해 S3 Access Grants 인스턴스를 IAM Identity Center에 연결하려면 현재 인증된 사용자를 대신하여 Amazon S3에 데이터를 요청하면 됩니다. 예를 들어 회사 디렉터리의 사용자 그룹에 S3의 데이터에 대한 액세스 권한을 부여할 수 있습니다. 이 접근 방식을 사용하면 Microsoft Entra, Okta 등과 같은 외부 제공업체에서 호스팅되는 것을 포함한 사용자 및 그룹에 대한 S3 Access Grants 권한을 중앙에서 관리할 수 있습니다.

이 방법을 사용하는 경우 IAM Identity Center와의 통합을 통해 기존 사용자 디렉터리를 사용할 수 있습니다. IAM Identity Center 신뢰할 수 있는 ID 전파의 또 다른 이점은 AWS CloudTrail Amazon S3의 각 데이터 이벤트에 S3 데이터에 액세스한 최종 사용자 ID에 대한 직접 참조가 포함된다는 것입니다.

OAuth 2.0을 지원하는 애플리케이션이 있고 사용자가 이러한 애플리케이션에서 AWS 서비스에 액세스해야 하는 경우 신뢰할 수 있는 ID 전파를 사용하는 것이 좋습니다. 신뢰할 수 있는 ID 전파를 통해 사용자는 애플리케이션에 로그인할 수 있고, 해당 애플리케이션은 AWS 서비스의 데이터에 액세스하기 위한 요청에 사용자의 ID를 전달할 수 있습니다. 이 애플리케이션은 인증된 사용자를 대신하여 IAM Identity Center와 상호 작용합니다. 자세한 내용은 Using trusted identity propagation with customer managed applications을 참조하세요.

설정

S3 Access GrantsIAM Identity Center 신뢰할 수 있는 자격 증명 전파를 AWS Management Console 사용하여 에서 Storage Browser 인증을 설정하려면 애플리케이션이 현재 인증된 사용자를 대신하여 Amazon S3에 데이터를 요청해야 합니다. 이 접근 방식을 사용하면 회사 디렉터리의 사용자 또는 사용자 그룹에 S3 버킷, 접두사 또는 객체에 대한 직접 액세스 권한을 부여할 수 있습니다. 즉, 애플리케이션에서 사용자를 IAM 위탁자에 매핑할 필요가 없습니다.

다음 워크플로에서는 IAM Identity Center 및 S3 Access Grants를 사용하여 Storage Browser for S3를 설정하는 단계를 간략하게 설명합니다.

단계 설명
1 AWS Organizations에 대해 IAM Identity Center 활성화
2 AWS Identity and Access Management Identity Center 페더레이션 구성
3 AWS Identity and Access Management Identity Center 콘솔에 신뢰할 수 있는 토큰 발급자 추가

신뢰할 수 있는 토큰 발급자는 IAM Identity Center 내의 외부 ID 제공업체(IdP)를 나타내며, 애플리케이션의 인증된 사용자의 ID 토큰을 인식할 수 있도록 합니다.

4 bootstrap 애플리케이션 및 identity bearer에 대한 IAM 역할 생성
5 IAM Identity Center에서 애플리케이션 생성 및 구성

이 애플리케이션은 인증된 사용자를 대신하여 IAM Identity Center와 상호 작용합니다.

6 ID 전파를 위한 신뢰할 수 있는 애플리케이션으로 S3 Access Grants 추가

이 단계에서는 애플리케이션이 인증된 사용자를 대신하여 S3 Access Grants에 요청할 수 있도록 애플리케이션을 S3 Access Grants에 연결합니다.

7 사용자 또는 그룹에 대한 권한 부여 생성

이 단계에서는 AWS Identity and Access Management Identity Center의 사용자를 System for Cross-domain Identity Management(SCIM)와 동기화합니다. SCIM은 IAM Identity Center ID를 ID 제공업체(idP)의 ID와 동기화합니다.

8 Storage Browser for S3 구성 요소 생성

AWS Organizations에 대해 IAM Identity Center 활성화

AWS Organizations에 대해 IAM Identity Center를 활성화하려면 다음 단계를 수행하세요.

  1. 다음 방법 중 하나를 사용하여 AWS Management Console에 로그인합니다.

    1. AWS를 처음 사용하시나요?(루트 사용자) - 루트 사용자를 선택하고 AWS 계정 이메일 주소를 입력해 계정 소유자로 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

    2. 이미 AWS를 사용하고 있음(IAM 자격 증명) - 관리자 권한이 있는 IAM 자격 증명을 사용하여 로그인합니다.

  2. IAM Identity Center 콘솔을 엽니다.

  3. IAM Identity Center 활성화에서 활성화를 선택합니다.

    참고

    IAM Identity Center는 AWS Organizations 설정이 필요합니다. 조직을 설정하지 않은 경우, AWS에서 대신 생성하도록 선택할 수 있습니다. AWS 조직 생성을 선택하여 프로세스를 완료합니다.

  4. AWS Organizations으로 활성화를 선택합니다.

  5. 계속을 선택합니다.

  6. (선택 사항) 이 조직 인스턴스와 연결하고자 하는 태그를 추가합니다.

  7. (선택 사항) 위임 관리를 구성합니다.

    참고

    다중 계정을 사용하는 환경인 경우, 위임 관리를 구성하는 것을 권장합니다. 위임 관리를 사용하면 AWS Organizations의 관리 계정에 액세스해야 하는 사람의 수를 제한할 수 있습니다. 자세한 내용은 Delegated administration을 참조하세요.

  8. Save(저장)를 선택합니다.

AWS Organizations에서 관리 계정과 연결된 주소로 확인 이메일을 자동으로 전송합니다. 확인 이메일을 받기까지 어느 정도 시간이 걸릴 수 있습니다. 확인 이메일이 만료되기 전에 24시간 내에 이메일 주소를 확인해야 합니다.

AWS Identity and Access Management Identity Center 페더레이션 구성

회사 디렉터리 사용자와 함께 Storage Browser for S3를 사용하려면 외부 ID 제공업체(idP)를 사용하도록 IAM Identity Center를 구성해야 합니다. 원하는 ID 제공업체를 사용할 수 있습니다. 그러나 각 ID 제공업체는 서로 다른 구성 설정을 사용한다는 것을 유의하세요. 각기 다른 외부 ID 제공업체 사용에 대한 자습서는 IAM Identity Center source tutorials을 참조하세요.

참고

이후 단계에서 참조해야 하므로 구성한 ID 제공업체의 발급자 URL과 대상 속성을 기록해 두세요. IdP를 구성하는 데 필요한 액세스 권한이나 권한이 없는 경우 외부 IdP의 관리자에게 문의해 받아야 할 수 있습니다.

AWS Identity and Access Management Identity Center 콘솔에 신뢰할 수 있는 토큰 발급자 추가

신뢰할 수 있는 토큰 발급자는 AWS Identity and Access Management Identity Center의 외부 ID 제공업체를 나타내며 애플리케이션의 인증된 사용자에 대한 토큰을 인식합니다. AWS Organizations의 IAM Identity Center 인스턴스 계정 소유자는 다음 단계를 수행해야 합니다. 이러한 단계는 IAM Identity Center 콘솔에서 또는 프로그래밍 방식으로 수행할 수 있습니다.

AWS Identity and Access Management Identity Center 콘솔에서 신뢰할 수 있는 토큰 발급자를 추가하려면 다음 단계를 수행합니다.

  1. IAM Identity Center 콘솔을 엽니다.

  2. 설정을 선택합니다.

  3. 인증 탭을 선택하세요.

  4. 신뢰할 수 있는 토큰 발급자 섹션으로 이동하여 다음 세부 정보를 입력합니다.

    1. 발급자 URL에 신뢰할 수 있는 토큰 발급자 역할을 하는 외부 IdP의 URL을 입력합니다. 이 정보를 얻으려면 외부 IdP의 관리자에게 문의해야 할 수 있습니다. 자세한 내용은 Using applications with a trusted token issuer를 참조하세요.

    2. 신뢰할 수 있는 토큰 발급자 이름에 신뢰할 수 있는 토큰 발급자의 이름을 입력합니다. 이 이름은 애플리케이션 리소스가 자격 증명 전파를 위해 구성된 경우 8단계에서 선택할 수 있는 신뢰할 수 있는 토큰 발급자 목록에 표시됩니다.

  5. 속성 매핑을 원하는 애플리케이션 속성으로 업데이트합니다. 여기서 각 ID 제공업체 속성은 IAM Identity Center 속성에 매핑됩니다. 예를 들어 애플리케이션 속성 email을 IAM Identity Center 사용자 속성 email에 매핑하고 싶을 수 있습니다. IAM Identity Center에서 허용되는 사용자 속성 목록을 보려면 Attribute mappings for AWS Managed Microsoft AD directory의 표를 참조하세요.

  6. (선택 사항) 리소스 태그를 추가하려면 키와 값 페어를 입력합니다. 여러 리소스 태그를 추가하려면 새 태그 추가를 선택하여 새 항목을 생성하고 키 및 값 페어를 입력합니다.

  7. 신뢰할 수 있는 토큰 발급자 생성을 선택합니다.

  8. 신뢰할 수 있는 토큰 발급자 생성을 완료한 후에는 애플리케이션 관리자에게 문의하여 신뢰할 수 있는 토큰 발급자의 이름을 알리면 신뢰할 수 있는 토큰 발급자가 해당 콘솔에 표시되는지 확인할 수 있습니다.

  9. 신뢰할 수 있는 ID 전파에 대해 구성된 애플리케이션에서 사용자가 애플리케이션에 액세스할 수 있도록 애플리케이션 관리자가 해당 콘솔에서 이 신뢰할 수 있는 토큰 발급자를 선택해야 합니다.

bootstrap 애플리케이션 및 identity bearer에 대한 IAM 역할 생성

bootstrap 애플리케이션과 identity bearer 사용자가 서로 올바르게 작업할 수 있도록 두 개의 IAM 역할을 생성해야 합니다. IAM 역할 하나는 bootstrap 애플리케이션에 필요하고, 다른 하나는 ID 보유자 또는 S3 Access Grants를 통해 액세스를 요청하는 웹 애플리케이션에 액세스하는 최종 사용자에게 사용해야 합니다. bootstrap 애플리케이션은 ID 제공업체가 발급한 토큰을 수신하고 CreateTokenWithIAM API를 간접 호출하여 이 토큰을 Identity Center에서 발급한 토큰과 교환합니다.

다음과 같은 권한을 사용하여 bootstrap-role과 같은 IAM 역할을 생성합니다. 다음 예시 IAM 정책은 bootstrap-role에 토큰 교환을 수행할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "sso-oauth:CreateTokenWithIAM", ], "Resource": "arn:${Partition}:sso::${AccountId}:application/${InstanceId}/${ApplicationId}", "Effect": "Allow" }, { "Action": [ "sts:AssumeRole", "sts:SetContext" ], "Resource": "arn:aws:iam::${AccountId}:role/identity-bearer-role", "Effect": "Allow" }] }

그런 다음 ID 브로커가 IAM 자격 증명을 생성하는 데 사용하는 두 번째 IAM 역할(예: identity-bearer-role)을 생성합니다. ID 브로커에서 웹 애플리케이션으로 반환되는 IAM 자격 증명은 Storage Browser for S3 구성 요소에서 S3 데이터에 대한 액세스를 허용하는 데 사용됩니다.

{ "Action": [ "s3:GetDataAccess", "s3:ListCallerAccessGrants", ], "Resource": "arn:${Partition}:s3:${Region}:${Account}:access-grants/default", "Effect": "Allow" }

이 IAM 역할(identity-bearer-role)은 다음 문과 함께 신뢰 정책을 사용해야 합니다.

{ "Effect": "Allow", "Principal": { "AWS": "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] }

IAM Identity Center에서 애플리케이션 생성 및 구성

참고

시작하기 전에 이전 단계에서 필요한 IAM 역할을 생성했는지 확인합니다. 이 단계에서는 이러한 IAM 역할 중 하나를 지정해야 합니다.

AWS IAM Identity Center에서 고객 관리형 애플리케이션을 생성하고 구성하려면 다음 단계를 수행합니다.

  1. IAM Identity Center 콘솔을 엽니다.

  2. [Applications]를 선택합니다.

  3. 고객 관리형 탭을 선택합니다.

  4. 애플리케이션 추가를 선택합니다.

  5. 애플리케이션 유형 선택 페이지의 설정 기본 설정에서 설정하고자 하는 애플리케이션이 있습니다를 선택합니다.

  6. 애플리케이션 유형에서 OAuth 2.0을 선택합니다.

  7. Next(다음)를 선택합니다. 애플리케이션 지정 페이지가 표시됩니다.

  8. 애플리케이션 이름 및 설명 섹션에서 애플리케이션의 표시 이름(예: storage-browser-oauth)을 입력합니다.

  9. 설명(Description)을 입력합니다. 애플리케이션 설명은 IAM Identity Center 콘솔과 API 요청에는 표시되지만 AWS 액세스 포털에는 표시되지 않습니다.

  10. 사용자 및 그룹 할당 방법에서 할당 필요 없음을 선택합니다. 이 옵션은 권한이 부여된 모든 IAM Identity Center 사용자 및 그룹이 이 애플리케이션에 액세스할 수 있도록 허용합니다.

  11. AWS 액세스 포털에서 사용자가 애플리케이션에 액세스할 수 있는 애플리케이션 URL을 입력합니다.

  12. (선택 사항) 리소스 태그를 추가하려면 키와 값 페어를 입력합니다. 여러 리소스 태그를 추가하려면 새 태그 추가를 선택하여 새 항목을 생성하고 키 및 값 페어를 입력합니다.

  13. Next(다음)를 선택합니다. 인증 지정 페이지가 표시됩니다.

  14. 신뢰할 수 있는 토큰 발급자를 통한 인증에서 확인란을 사용하여 이전에 생성한 신뢰할 수 있는 토큰 발급자를 선택합니다.

  15. 선택한 신뢰할 수 있는 토큰 발급자 구성에서 AUD 클레임을 입력합니다. AUD 클레임은 JSON 웹 토큰(JWT)의 대상을 식별하며, 신뢰할 수 있는 토큰 발급자가 이 애플리케이션을 식별하는 이름입니다.

    참고

    이 정보를 얻으려면 외부 IdP의 관리자에게 문의해야 할 수 있습니다.

  16. Next(다음)를 선택합니다. 인증 자격 증명 지정 페이지가 표시됩니다.

  17. 구성 방법에서 IAM 역할 하나 이상 입력을 선택합니다.

  18. IAM 역할 입력에서 ID 보유자 토큰의 IAM 역할 또는 Amazon 리소스 이름(ARN)을 추가합니다. 이전 단계에서 ID 브로커 애플리케이션에 대해 생성한 IAM 역할(예: bootstrap-role)을 입력해야 합니다.

  19. Next(다음)를 선택합니다.

  20. 검토 및 구성 페이지에서 애플리케이션 구성의 세부 정보를 검토합니다. 설정을 수정해야 하는 경우 편집하고 변경하려는 섹션에서 편집을 선택합니다.

  21. 제출을 선택합니다. 방금 추가한 애플리케이션의 세부 정보 페이지가 표시됩니다.

애플리케이션을 설정한 후 사용자는 생성된 권한 세트할당된 사용자 액세스에 따라 AWS 액세스 포털 내에서 애플리케이션에 액세스할 수 있습니다.

ID 전파를 위한 신뢰할 수 있는 애플리케이션으로 S3 Access Grants 추가

고객 관리형 애플리케이션을 설정한 후에 ID 전파를 위한 S3 Access Grants를 지정해야 합니다. S3 Access Grants는 사용자가 Amazon S3 데이터에 액세스할 수 있도록 자격 증명을 제공합니다. 고객 관리형 애플리케이션에 로그인하면 S3 Access Grants가 사용자 ID를 신뢰할 수 있는 애플리케이션에 전달합니다.

사전 조건: 다음 단계를 수행하기 전에 S3 Access Grants를 설정했는지 확인합니다(예: S3 Access Grants 인스턴스 생성위치 등록). 자세한 내용은 S3 Access Grants 시작하기를 참조하세요.

고객 관리형 애플리케이션에 ID 전파를 위한 S3 Access Grants를 추가하려면 다음 단계를 수행합니다.

  1. IAM Identity Center 콘솔을 엽니다.

  2. [Applications]를 선택합니다.

  3. 고객 관리형 탭을 선택합니다.

  4. 고객 관리형 애플리케이션 목록에서 액세스 요청을 시작하려는 OAuth 2.0 애플리케이션을 선택합니다. 이 애플리케이션은 사용자가 로그인하는 애플리케이션입니다.

  5. 세부 정보 페이지ID 전파에 신뢰할 수 있는 애플리케이션에서 신뢰할 수 있는 애플리케이션 지정을 선택합니다.

  6. 설정 유형에서 개별 애플리케이션 및 액세스 지정을 선택하고, 다음을 선택합니다.

  7. 서비스 선택 페이지에서 S3 Access Grants를 선택합니다. S3 Access Grants에는 신뢰할 수 있는 ID 전파를 위한 자체 웹 애플리케이션을 정의하는 데 사용할 수 있는 애플리케이션이 있습니다.

  8. Next(다음)를 선택합니다. 다음 단계에서 애플리케이션을 선택합니다.

  9. 애플리케이션 선택 페이지에서 개별 애플리케이션을 선택하고, 액세스 요청을 수신할 수 있는 각 애플리케이션의 확인란을 선택한 후 다음을 선택합니다.

  10. 액세스 구성 페이지의 구성 방법에서 다음 중 하나를 선택합니다.

    • 애플리케이션별 액세스 선택 - 이 옵션을 선택하여 각 애플리케이션에 대해 다른 액세스 수준을 구성합니다. 액세스 수준을 구성하려는 애플리케이션을 선택하고, 액세스 편집을 선택합니다. 적용할 액세스 수준에서 필요한 정도로 액세스 수준을 변경한 다음 변경 사항 저장을 선택합니다.

    • 모든 애플리케이션에 동일한 수준의 액세스 적용 - 애플리케이션별로 액세스 수준을 구성할 필요가 없는 경우 이 옵션을 선택합니다.

  11. Next(다음)를 선택합니다.

  12. 구성 검토 페이지에서 선택한 항목을 검토합니다.

    참고

    사용자에게 s3:access_grants:read_write 권한이 부여되었는지 확인해야 합니다. 이 권한을 통해 사용자는 자격 증명을 검색하여 Amazon S3에 액세스할 수 있습니다. 이전에 생성한 IAM 정책 또는 S3 Access Grants를 사용하여 쓰기 작업에 대한 액세스를 제한해야 합니다.

  13. 변경하려면 변경하려는 구성 섹션에서 편집을 선택합니다. 그런 다음, 변경해야 하는 부분을 변경하고 변경 사항 저장을 선택합니다.

  14. 신뢰할 수 있는 애플리케이션을 선택하여 ID 전파를 위해 신뢰할 수 있는 애플리케이션을 추가합니다.

사용자 또는 그룹에 대한 권한 부여 생성

이 단계에서는 IAM Identity Center를 사용하여 사용자를 프로비저닝합니다. 사용자 및 그룹의 자동 또는 수동 프로비저닝에 SCIM을 사용할 수 있습니다. SCIM은 IAM Identity Center ID를 ID 제공업체(idP)의 ID와 동기화합니다. 여기에는 IdP와 IAM Identity Center 간의 모든 사용자 프로비저닝, 업데이트 및 디프로비저닝이 포함됩니다.

참고

IAM Identity Center에서 S3 Access Grants를 사용하는 경우 로컬 IAM Identity Center 사용자가 사용되지 않기 때문에 이 단계가 필요합니다. 대신 사용자는 ID 제공업체에서 IAM Identity Center와 동기화되어야 합니다.

ID 제공업체의 사용자를 IAM Identity Center와 동기화하려면 다음 단계를 수행합니다.

특정 사용 사례에 맞게 IAM Identity Center에서 ID 제공업체를 설정하는 방법에 대한 예는 IAM Identity Center Identity source tutorials을 참조하세요.

Storage Browser for S3 구성 요소 생성

IAM Identity Center 인스턴스를 설정하고 S3 Access Grants에서 권한 부여를 생성한 후 React 애플리케이션을 엽니다. React 애플리케이션에서 createManagedAuthAdapter를 사용하여 권한 부여 규칙을 설정합니다. IAM Identity Center에서 획득한 자격 증명을 반환하려면 ID 제공업체를 제공해야 합니다. 그런 다음 createStorageBrowser를 직접 호출하여 Storage Browser for S3 구성 요소를 초기화할 수 있습니다.

import { createManagedAuthAdapter, createStorageBrowser, } from '@aws-amplify/ui-react-storage/browser'; import '@aws-amplify/ui-react-storage/styles.css'; export const { StorageBrowser } = createStorageBrowser({ config: createManagedAuthAdapter({ credentialsProvider: async (options?: { forceRefresh?: boolean }) => { // return your credentials object return { credentials: { accessKeyId: 'my-access-key-id', secretAccessKey: 'my-secret-access-key', sessionToken: 'my-session-token', expiration: new Date(), }, } }, // AWS `region` and `accountId` of the S3 Access Grants Instance. region: '', accountId: '', // call `onAuthStateChange` when end user auth state changes // to clear sensitive data from the `StorageBrowser` state registerAuthListener: (onAuthStateChange) => {}, }) });

다음으로, 웹 애플리케이션의 JSON 웹 토큰(JWT)을 IAM Identity Center의 IAM 자격 증명과 교환하는 메커니즘을 생성합니다. JWT를 교환하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

그런 다음 자격 증명 가져오기 요청을 처리하도록 API 엔드포인트를 설정합니다. JSON 웹 토큰(JWT) 교환을 검증하려면 다음 단계를 수행합니다.

  1. 수신 요청에 대해 권한 부여 헤더에서 JSON 웹 토큰을 검색합니다.

  2. 지정된 JSON 웹 키 세트(JWKS) URL의 퍼블릭 키를 사용하여 토큰을 검증합니다.

  3. 토큰의 만료, 발급자, 제목 및 대상 클레임을 확인합니다.

ID 제공업체의 JSON 웹 토큰을 AWS IAM 자격 증명과 교환하려면 다음 단계를 수행합니다.

작은 정보

민감한 정보가 로깅되지 않도록 해야 합니다. 누락된 권한 부여, 만료된 토큰 및 기타 예외에 대한 오류 처리 제어를 사용하는 것이 좋습니다. 자세한 내용은 AWS Compute BlogImplementing AWS Lambda error handling patterns 게시물을 참조하세요.

  1. 필요한 권한범위 파라미터가 요청에 제공되었는지 확인합니다.

  2. CreateTokenWithIAM API를 사용하여 JSON 웹 토큰을 IAM Identity Center 토큰으로 교환합니다.

    참고

    IdP JSON 웹 토큰을 사용한 후에는 다시 사용할 수 없습니다. IAM Identity Center와 교환하려면 새 토큰을 사용해야 합니다.

  3. AssumeRole API 작업을 사용하여 IAM Identity Center 토큰을 사용하여 임시 역할을 수임합니다. 자격 증명을 요청하려면 자격 증명 컨텍스트(예: identity-bearer-role)를 포함하는 역할이라고도 하는 ID 보유자 역할을 사용해야 합니다.

  4. IAM 자격 증명을 웹 애플리케이션에 반환합니다.

    참고

    적절한 로깅 메커니즘을 설정했는지 확인합니다. 응답은 적절한 HTTP 상태 코드와 함께 표준화된 JSON 형식으로 반환됩니다.