외부 HashiCorp Vault를 사용하도록 데이터 브로커 그룹을 설정합니다
Amazon S3, Azure 또는 Google Cloud 자격 증명이 필요한 동기화 관계를 생성하는 경우 BlueXP 복사본 및 동기화 사용자 인터페이스 또는 API를 통해 이러한 자격 증명을 지정해야 합니다. 또는 데이터 브로커 그룹을 설정하여 외부 HashiCorp 볼트에서 직접 자격 증명(또는 비밀)에 액세스할 수도 있습니다.
이 기능은 Amazon S3, Azure 또는 Google Cloud 자격 증명이 필요한 동기화 관계가 있는 BlueXP 복사 및 동기화 API를 통해 지원됩니다.
URL을 설정하여 데이터 브로커 그룹에 자격 증명을 제공할 볼트를 준비합니다. 볼트의 비밀에 대한 URL은 _creds_로 끝나야 합니다.
그룹의 각 데이터 브로커에 대한 로컬 구성 파일을 수정하여 외부 볼트에서 자격 증명을 가져오도록 데이터 브로커 그룹을 준비합니다.
이제 모든 것이 설정되었으므로 API 호출을 전송하여 볼트를 사용하는 동기화 관계를 만들어 비밀을 가져올 수 있습니다.
볼트를 준비합니다
BlueXP 복사본을 제공하고 URL과 볼트 내 비밀에 동기화해야 합니다. 이러한 URL을 설정하여 볼트를 준비합니다. 만들려는 동기화 관계의 각 소스 및 타겟의 자격 증명에 대한 URL을 설정해야 합니다.
URL은 다음과 같이 설정해야 합니다.
'/<path>/<requested>/<endpoint-protocol>creds'
- 경로
-
비밀에 대한 접두사 경로입니다. 이는 귀하에게 고유한 모든 가치가 될 수 있습니다.
- 요청 ID입니다
-
생성해야 하는 요청 ID입니다. 동기화 관계를 생성할 때 API POST 요청의 헤더 중 하나에 ID를 제공해야 합니다.
- 엔드포인트 프로토콜
-
정의된 대로 다음 프로토콜 중 하나입니다 "사후 관계 v2 문서에서"S3, Azure 또는 GCP(각각 대문자여야 함).
- 크레드
-
URL은 _creds_로 끝나야 합니다.
예
다음 예제에서는 비밀에 대한 URL을 보여 줍니다.
- 소스 자격 증명의 전체 URL 및 경로 예
-
http://example.vault.com:8200/my-path/all-secrets/hb312vdasr2/S3Creds 으로 문의하십시오
예제에서 볼 수 있듯이 접두사 경로는 _/my-path/all-sids/_이고 요청 ID는 _hb312vdasr2_이며 소스 끝점은 S3입니다.
- 대상 자격 증명의 전체 URL 및 경로 예
-
http://example.vault.com:8200/my-path/all-secrets/n32hcbnejk2/AZURECreds 으로 문의하십시오
접두사 경로는 _/my-path/all-sats/_이고, 요청 ID는 _n32hcbnejk2_이며, 대상 끝점은 Azure입니다.
데이터 브로커 그룹을 준비합니다
그룹의 각 데이터 브로커에 대한 로컬 구성 파일을 수정하여 외부 볼트에서 자격 증명을 가져오도록 데이터 브로커 그룹을 준비합니다.
-
그룹의 데이터 브로커에 SSH를 연결합니다.
-
/opt/netapp/databroker/config에 있는 local.json 파일을 편집합니다.
-
enable을 * true * 로 설정하고 다음과 같이 _external-통합.hashicorp_에서 config 매개 변수 필드를 설정합니다.
- 활성화됨
-
-
유효한 값: TRUE/FALSE
-
Type:Boolean 을 입력합니다
-
기본값: false
-
참: 데이터 브로커는 외부의 HashashCorp Vault에서 비밀을 얻습니다
-
거짓: 데이터 브로커는 로컬 볼트에 자격 증명을 저장합니다
-
- URL
-
-
유형: string
-
값: 외부 볼트의 URL
-
- 경로
-
-
유형: string
-
값: 자격 증명을 사용하여 비밀번호에 대한 접두사 경로입니다
-
- 거부 - 승인되지 않음
-
-
데이터 브로커가 승인되지 않은 외부 볼트를 거부하도록 할지 여부를 결정합니다
-
Type:Boolean 을 입력합니다
-
기본값: false
-
- 인증 방법
-
-
데이터 브로커가 외부 볼트에서 자격 증명에 액세스하기 위해 사용해야 하는 인증 방법입니다
-
유형: string
-
유효한 값: “AWS-IAM”/“ROLE-APP”/"GCP-IAM"
-
- 역할 이름
-
-
유형: string
-
역할 이름(AWS-IAM 또는 GCP-IAM을 사용하는 경우)
-
- 정전동맥(&R)
-
-
유형: 문자열(APP-ROLE 사용 시)
-
- 네임스페이스
-
-
유형: string
-
네임스페이스(필요한 경우 X-Vault-Namespace 헤더)
-
-
그룹의 다른 데이터 브로커에 대해 이 단계를 반복합니다.
AWS 역할 인증의 예
{
“external-integrations”: {
“hashicorp”: {
“enabled”: true,
“url”: “https://example.vault.com:8200”,
“path”: ““my-path/all-secrets”,
“reject-unauthorized”: false,
“auth-method”: “aws-role”,
“aws-role”: {
“role-name”: “my-role”
}
}
}
}
GCP-IAM 인증의 예
{
"external-integrations": {
"hashicorp": {
"enabled": true,
"url": http://ip-10-20-30-55.ec2.internal:8200,
"path": "v1/secret",
"namespace": "",
"reject-unauthorized": true,
"auth-method": "gcp-iam",
"aws-iam": {
"role-name": ""
},
"app-role": {
"root_id": "",
"secret_id": ""
},
"gcp-iam": {
"role-name": "my-iam-role"
}
}
}
}
GCP-IAM 인증을 사용할 때 권한을 설정합니다
_GCP-IAM_인증 방법을 사용하는 경우 데이터 브로커에 다음과 같은 GCP 권한이 있어야 합니다.
- iam.serviceAccounts.signJwt
볼트의 비밀을 사용하여 새 동기화 관계를 작성합니다
이제 모든 것이 설정되었으므로 API 호출을 전송하여 볼트를 사용하는 동기화 관계를 만들어 비밀을 가져올 수 있습니다.
BlueXP 복사 및 동기화 REST API를 사용하여 관계를 게시합니다.
Headers: Authorization: Bearer <user-token> Content-Type: application/json x-account-id: <accountid> x-netapp-external-request-id-src: request ID as part of path for source credentials x-netapp-external-request-id-trg: request ID as part of path for target credentials Body: post relationship v2 body
-
사용자 토큰 및 BlueXP 계정 ID를 얻으려면 "설명서의 이 페이지를 참조하십시오".
-
사후 관계를 위한 본문을 구축하려면 "관계 - v2 API 호출을 참조하십시오".
예
POST 요청의 예:
url: https://api.cloudsync.netapp.com/api/relationships-v2
headers:
"x-account-id": "CS-SasdW"
"x-netapp-external-request-id-src": "hb312vdasr2"
"Content-Type": "application/json"
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik…"
Body:
{
"dataBrokerId": "5e6e111d578dtyuu1555sa60",
"source": {
"protocol": "s3",
"s3": {
"provider": "sgws",
"host": "1.1.1.1",
"port": "443",
"bucket": "my-source"
},
"target": {
"protocol": "s3",
"s3": {
"bucket": "my-target-bucket"
}
}
}