임시 자격 증명을 사용하는 IAM 인증 - Amazon Neptune

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

임시 자격 증명을 사용하는 IAM 인증

Amazon Neptune은 임시 보안 인증 정보를 사용하는 IAM 인증을 지원합니다.

이전 섹션의 예제 정책 중 하나와 같이 역할을 가정하여 IAM 인증 정책을 사용하여 인증할 수 있습니다.

임시 자격 증명을 사용하는 경우 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYSERVICE_REGION 외에도 AWS_SESSION_TOKEN을 지정해야 합니다.

참고

임시 자격 증명은 세션 토큰을 포함하여 지정된 간격 후에 만료됩니다.

새 자격 증명을 요청할 경우 세션 토큰을 업데이트해야 합니다. 자세한 내용은 임시 보안 자격 증명을 사용하여 리소스에 AWS 대한 액세스 요청을 참조하십시오.

다음 단원에서는 임시 자격 증명에 액세스하고 검색하는 방법에 대해 설명합니다.

임시 자격 증명을 사용하여 인증하려면
  1. Neptune 클러스터에 액세스할 권한이 있는 IAM 역할을 생성합니다. 이 역할을 생성하는 방법에 대한 상세 정보는 Neptune에 대한 액세스를 제어하는 데 다양한 종류의 IAM 정책 사용을(를) 참조하세요.

  2. 자격 증명에 액세스할 수 있는 신뢰 관계를 역할에 추가합니다.

    AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN을 포함한 임시 자격 증명을 검색합니다.

  3. Neptune 클러스터에 연결하고 임시 보안 인증 정보를 사용하여 요청에 서명합니다. 요청 연결 및 서명에 대한 자세한 내용은 시그니처 버전 4를 사용한 연결 및 AWS 서명 단원을 참조하십시오.

환경에 따라 임시 자격 증명을 검색하는 다양한 방법이 있습니다.

AWS CLI를 사용하여 임시 자격 증명 가져오기

AWS Command Line Interface (AWS CLI) 를 사용하여 자격 증명을 가져오려면 먼저 AWS CLI 명령을 실행할 AWS 사용자에게 역할을 수임할 권한을 부여하는 신뢰 관계를 추가해야 합니다.

Neptune IAM 인증 역할에 다음 신뢰 관계를 추가합니다. Neptune IAM 인증 역할이 없다면 Neptune에 대한 액세스를 제어하는 데 다양한 종류의 IAM 정책 사용 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test" }, "Action": "sts:AssumeRole" } ] }

역할에 신뢰 관례를 추가하는 방법에 대한 자세한 내용은 AWS Directory Service 관리 안내서기존 역할에서 신뢰 관계 편집을 참조하세요.

Neptune 정책이 아직 역할에 연결되어 있지 않으면 새 역할을 생성합니다. Neptune IAM 인증 정책을 연결한 다음 신뢰 정책을 추가합니다. 새 역할 생성에 대한 자세한 내용은 새 역할 생성 단원을 참조하십시오.

참고

다음 섹션에서는 AWS CLI 설치된 것으로 가정합니다.

AWS CLI 수동으로 실행하려면
  1. 다음 명령을 입력하여 AWS CLI로 자격 증명을 요청합니다. 역할 ARN, 세션 이름 및 프로파일을 사용자 값으로 바꿉니다.

    aws sts assume-role --role-arn arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile
  2. 다음은 명령의 출력 예제입니다. Credentials 단원에는 필요한 값이 포함되어 있습니다.

    참고

    이 시간 이후에 새 자격 증명을 가져와야 하므로 Expiration 값을 기록합니다.

    { "AssumedRoleUser": { "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example", "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example" }, "Credentials": { "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI", "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=", "Expiration": "2016-03-15T00:05:07Z", "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA" } }
  3. 반환된 자격 증명을 사용하여 환경 변수를 설정합니다.

    export AWS_ACCESS_KEY_ID=ASIAJEXAMPLEXEG2JICEA export AWS_SECRET_ACCESS_KEY=9drTJvcXLB89EXAMPLELB8923FB892xMFI export AWS_SESSION_TOKEN=AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU= export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  4. 다음 방법 중 하나를 사용하여 연락처를 연결합니다.

스크립트를 사용하여 자격 증명을 가져오려면
  1. 다음 명령을 실행하여 jq 명령을 설치합니다. 스크립트는 이 명령을 사용하여 명령의 AWS CLI 출력을 구문 분석합니다.

    sudo yum -y install jq
  2. 텍스트 편집기에서 credentials.sh라는 파일을 생성하고 다음 텍스트를 추가합니다. 서비스 리전, 역할 ARN, 세션 이름 및 프로파일을 사용자 값으로 바꿉니다.

    #!/bin/bash creds_json=$(aws sts assume-role --role-arn arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile) export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .Credentials.AccessKeyId |tr -d '"') export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .Credentials.SecretAccessKey| tr -d '"') export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Credentials.SessionToken|tr -d '"') export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. 다음 방법 중 하나를 사용하여 연락처를 연결합니다.

Neptune IAM 인증을 위한 AWS Lambda 설정

AWS Lambda Lambda 함수가 실행될 때마다 자격 증명을 자동으로 포함합니다.

먼저 Lambda 서비스에 대한 역할을 맡을 권한을 부여하는 신뢰 관계를 추가합니다.

Neptune IAM 인증 역할에 다음 신뢰 관계를 추가합니다. Neptune IAM 인증 역할이 없다면 Neptune에 대한 액세스를 제어하는 데 다양한 종류의 IAM 정책 사용 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

역할에 신뢰 관례를 추가하는 방법에 대한 자세한 내용은 AWS Directory Service관리 안내서기존 역할에서 신뢰 관계 편집을 참조하세요.

Neptune 정책이 아직 역할에 연결되어 있지 않으면 새 역할을 생성합니다. Neptune IAM 인증 정책을 연결한 다음 신뢰 정책을 추가합니다. 새 역할을 만드는 방법에 대한 자세한 내용은 AWS Directory Service 관리 안내서새 역할 생성을 참조하세요.

Lambda에서 Neptune에 액세스하려면
  1. https://console.aws.amazon.com/lambda/ 에서 AWS Management Console 로그인하고 AWS Lambda 콘솔을 엽니다.

  2. Python 버전 3.6에 대해 새 Lambda 함수를 생성합니다.

  3. AWSLambdaVPCAccessExecutionRole 역할을 Lambda 함수에 지정합니다. 이는 VPC만 해당되는 Neptune 리소스에 액세스해야 할 경우 필요합니다.

  4. Neptune 인증 IAM 역할을 Lambda 함수에 지정합니다.

    자세한 내용은 AWS Lambda 개발자 안내서AWS Lambda 권한 섹션을 참조하세요.

  5. IAM 인증 Python 샘플을 Lambda 함수 코드에 복사합니다.

    샘플 및 샘플 코드에 대한 자세한 내용은 예제: Signature Version 4 서명으로 Python을 사용하여 Neptune에 연결 단원을 참조하십시오.

Neptune IAM 인증을 위한 Amazon EC2 설정

Amazon EC2를 사용하면 인스턴스 프로파일을 사용하여 자격 증명을 자동으로 제공할 수 있습니다. 자세한 내용은 IAM 사용 설명서인스턴스 프로파일 사용을 참조하세요.

먼저 Amazon EC2 서비스에 대한 역할을 맡을 권한을 부여하는 신뢰 관계를 추가합니다.

Neptune IAM 인증 역할에 다음 신뢰 관계를 추가합니다. Neptune IAM 인증 역할이 없다면 Neptune에 대한 액세스를 제어하는 데 다양한 종류의 IAM 정책 사용 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

역할에 신뢰 관례를 추가하는 방법에 대한 자세한 내용은 AWS Directory Service 관리 안내서기존 역할에서 신뢰 관계 편집을 참조하세요.

Neptune 정책이 아직 역할에 연결되어 있지 않으면 새 역할을 생성합니다. Neptune IAM 인증 정책을 연결한 다음 신뢰 정책을 추가합니다. 새 역할을 만드는 방법에 대한 자세한 내용은 AWS Directory Service 관리 안내서새 역할 생성을 참조하세요.

스크립트를 사용하여 자격 증명을 가져오려면
  1. 다음 명령을 실행하여 jq 명령을 설치합니다. 스크립트는 이 명령을 사용하여 curl 명령의 출력을 구문 분석합니다.

    sudo yum -y install jq
  2. 텍스트 편집기에서 credentials.sh라는 파일을 생성하고 다음 텍스트를 추가합니다. 서비스 리전을 사용자의 값으로 바꿉니다.

    role_name=$( curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/ ) creds_json=$(curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/${role_name}) export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .AccessKeyId |tr -d '"') export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .SecretAccessKey| tr -d '"') export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Token|tr -d '"') export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. source 명령을 사용해 bash 셸에서 스크립트를 실행합니다.

    source credentials.sh

    더 좋은 방법은 이 스크립트의 명령을 EC2 인스턴스의 .bashrc 파일에 추가하는 것입니다. 그러면 로그인할 때 이 명령이 자동으로 호출되어 Gemlin 콘솔에서 임시 자격 증명을 사용할 수 있게 됩니다.

  4. 다음 방법 중 하나를 사용하여 연락처를 연결합니다.