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 자격 증명 풀을 생성하여 인증받지 않은 ID를 지원할 수 있습니다.

    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 Getting Started Guide웹 브라우저에서 자격 증명 설정을 참조하십시오.