Amazon Cognito를 사용하여 파일에서 AWS 보안 인증 정보 구성 - Amazon DynamoDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Cognito를 사용하여 파일에서 AWS 보안 인증 정보 구성

웹 및 모바일 애플리케이션용 AWS 자격 증명을 얻으려면 Amazon Cognito를 사용하는 것이 좋습니다. Amazon Cognito를 사용하면 파일에서 AWS 자격 증명을 하드 코딩할 필요가 없습니다. AWS Identity and Access Management(IAM) 역할을 사용하여 애플리케이션의 인증 및 미인증 사용자를 위한 임시 자격 증명을 생성합니다.

예를 들어, Amazon Cognito 미인증 역할을 사용해 Amazon DynamoDB 웹 서비스에 액세스하도록 JavaScript 파일을 구성하려면 다음을 수행합니다.

Amazon Cognito와 통합하도록 자격 증명을 구성하려면
  1. 인증받지 않은 자격 증명을 허용하는 Amazon Cognito 자격 증명 풀을 생성합니다.

    aws cognito-identity create-identity-pool \ --identity-pool-name DynamoPool \ --allow-unauthenticated-identities \ --output json { "IdentityPoolId": "us-west-2:12345678-1ab2-123a-1234-a12345ab12", "AllowUnauthenticatedIdentities": true, "IdentityPoolName": "DynamoPool" }
  2. 다음 정책을 myCognitoPolicy.json이라는 파일에 복사합니다. 자격 증명 풀 ID(us-west-2:12345678-1ab2-123a-1234-a12345ab12)를 이전 단계에서 얻은 자체 IdentityPoolId으로 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2:12345678-1ab2-123a-1234-a12345ab12" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }
  3. IAM 역할을 만들고 이전에 만든 정책을 위임합니다. 이를 통해 Amazon Cognito는 Cognito_DynamoPoolUnauth 역할을 맡을 수 있는 신뢰할 수 있는 엔터티가 됩니다.

    aws iam create-role --role-name Cognito_DynamoPoolUnauth \ --assume-role-policy-document file://PathToFile/myCognitoPolicy.json --output json
  4. 관리형 정책(AmazonDynamoDBFullAccess)을 연결함으로써 DynamoDB에 대한 모든 액세스 권한을 Cognito_DynamoPoolUnauth 역할에 부여합니다.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess \ --role-name Cognito_DynamoPoolUnauth
    참고

    다른 방식으로 DynamoDB에 대해 세분화된 액세스를 부여할 수 있습니다. 자세한 내용은 IAM 정책 조건을 사용하여 세분화된 액세스 제어 구현을 참조하세요.

  5. IAM 역할의 Amazon 리소스 이름(ARN)을 가져와 복사합니다.

    aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
  6. 자격 증명 풀에 DynamoPool역할Cognito_DynamoPoolUnauth을 추가합니다. 지정할 형식은 KeyName=string입니다. 여기서 KeyNameunauthenticated이고 문자열은 이전 단계에서 얻은 역할 ARN입니다.

    aws cognito-identity set-identity-pool-roles \ --identity-pool-id "us-west-2:12345678-1ab2-123a-1234-a12345ab12" \ --roles unauthenticated=arn:aws:iam::123456789012:role/Cognito_DynamoPoolUnauth --output json
  7. 파일에서 Amazon Cognito 자격 증명을 지정합니다. IdentityPoolIdRoleArn을 적절하게 변경합니다.

    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: "us-west-2:12345678-1ab2-123a-1234-a12345ab12", RoleArn: "arn:aws:iam::123456789012:role/Cognito_DynamoPoolUnauth" });

이제 Amazon Cognito 자격 증명을 사용하여 DynamoDB 웹 서비스에서 JavaScript 프로그램을 실행할 수 있습니다. 자세한 내용은 AWS SDK for JavaScript 시작 안내서에서 웹 브라우저에서 보안 인증 정보 설정을 참조하세요.