기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SharePoint에 대한 Microsoft Entra ID 앱 전용 인증 설정
Microsoft Entra ID 앱 전용 인증(ENTRA_ID_APP_ONLY)은 SharePoint 데이터 소스에 권장되는 인증 방법입니다. OAuth 2.0 클라이언트 자격 증명(애플리케이션 전용) 흐름을 사용합니다. Microsoft Entra 애플리케이션은 인증서로 인증하므로 크롤링 시 또는 쿼리 시 사용자 로그인이 관여하지 않습니다. 이는 문서 수준 액세스 제어(ACLs)를 지원하는 유일한 인증 방법입니다. 대체 OAUTH2_APP 방법과의 비교는 단원을 참조하십시오인증 방법.
이 설정은 Microsoft Entra ID와 AWS 계정이라는 두 시스템에 걸쳐 있으며, 인증서는 이를 연결하는 자격 증명입니다. 커넥터는 인증서(프라이빗 키 포함)를 Amazon S3에 PKCS#12(.p12) 파일로 저장하고 이를 사용하여 Microsoft에 인증 어설션에 서명합니다. 일치하는 퍼블릭 인증서는 Entra 애플리케이션 등록에 업로드되어 Microsoft가 해당 어설션을 검증할 수 있습니다.
관리 액세스 필요
이 설정을 수행하려면 Microsoft Entra ID 관리자(글로벌 관리자 또는 권한 있는 역할 관리자)가 애플리케이션을 등록하고 권한을 구성하며 관리자 동의를 부여해야 합니다. Sites.Selected 권한 범위를 사용하는 경우 SharePoint 관리자가 사이트당 액세스 권한을 부여해야 합니다. 아래 설정 단계 및 역할 표는 각 단계에 필요한 액세스를 식별합니다.
설정 단계 및 역할
이 절차에는 Microsoft Entra ID 관리자와 AWS 관리자가 모두 포함됩니다. 조직에서 책임을 나누는 방법에 따라 한 사람 또는 여러 사람이이 단계를 완료할 수 있습니다. 다음 표를 사용하여 각 단계에 필요한 액세스를 식별합니다.
| 단계 | 수행하는 작업 | 액세스 필요 |
|---|---|---|
| 1. 애플리케이션 등록 | Entra 앱 등록을 생성하고 클라이언트 및 테넌트 IDs 기록합니다. | Microsoft Entra ID 관리자(글로벌 관리자 또는 권한 있는 역할 관리자) |
| 2. 권한 추가 및 동의 부여 | 구성에 대한 애플리케이션 권한을 할당하고 관리자 동의를 부여합니다. | Microsoft Entra ID 관리자 |
| 3. 인증서 생성 | OpenSSL을 사용하여 자체 서명된 인증서와 PKCS#12(.p12) 번들을 생성합니다. |
로컬 터미널을 사용하는 모든 사용자(OpenSSL 필요) |
| 4. Entra에 퍼블릭 인증서 업로드 | 앱 등록 키에 퍼블릭 인증서를 추가합니다. | Microsoft Entra ID 관리자 |
5. 사이트별 액세스 권한 부여(Sites.Selected만 해당) |
Microsoft Graph API를 통해 각 SharePoint 사이트에 대한 앱 액세스 권한을 부여합니다. | Microsoft Entra ID 관리자 |
| 6. Amazon S3에 인증서 업로드 | .p12 번들을 Amazon S3 버킷에 저장합니다. |
AWS 관리자(Amazon S3) |
| 7. 보안 암호 생성 | 보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장합니다. | AWS 관리자(Secrets Manager) |
| 8. 서비스 역할에 인증서에 대한 액세스 권한 부여 | 지식 기반 서비스 역할에 Amazon S3 읽기 권한을 추가합니다. | AWS 관리자(IAM) |
구성 선택
시작하기 전에 두 가지 결정을 내립니다. 2단계에서 할당하는 권한과 사이트 액세스 권한을 부여하는 방법을 결정합니다.
-
문서 수준 액세스 제어(ACLs) - 데이터 소스가 각 사용자의 SharePoint 권한을 기준으로 쿼리 결과를 필터링할지 여부를 결정합니다. ACL 크롤링에는 추가 Microsoft Graph 및 SharePoint 권한이 필요합니다. 데이터 소스를 생성한 후에는이 설정을 변경할 수 없습니다. 자세한 내용은 문서 수준 액세스 제어을 참조하세요.
-
권한 범위 - 애플리케이션이 테넌트의 모든 SharePoint 사이트(모든 사이트, 가장 간단한 옵션)를 읽을 수 있는지 아니면 명시적으로 부여하는 사이트(최소 권한 옵션
Sites.Selected)만 읽을 수 있는지 결정합니다. 5단계에서 추가 사이트별 권한 부여를 완료Sites.Selected하면 나중에 추가하는 모든 사이트에는 자체 권한 부여가 필요합니다.
이 두 선택 항목의 조합은 다음 섹션의 권한 세트 중 하나를 선택합니다.
권한 참조
구성과 일치하는 애플리케이션 권한을 할당합니다. 모든 권한은 애플리케이션 권한(위임되지 않음)이며, 모든 권한에는 관리자 동의가 필요합니다. 커넥터는 Microsoft Graph(사이트를 열거하고 ACLs의 경우 사용자 및 그룹을 확인)와 SharePoint REST API(사이트 콘텐츠를 읽고 ACLs의 경우 항목 수준 권한)의 두 가지 Microsoft 리소스에 대해 인증합니다.
중요
Entra 포털에서 이러한 권한을 추가할 때 위임된 권한이 아닌 애플리케이션 권한 탭을 선택합니다. 앱 전용 인증은 애플리케이션 권한을 사용합니다.
구성의 탭을 선택하여 할당할 정확한 Microsoft Graph 및 SharePoint 권한을 확인합니다.
참고
Sites.FullControl.All는 테넌트의 모든 사이트에 대한 광범위한 액세스 권한을 부여합니다. 조직에 최소 권한이 필요한 경우를 Sites.Selected 사용하고 5단계에서 사이트별 액세스 권한을 부여합니다.
설정 중에 수집하는 값
단계를 진행하면서 다음 값을 생성하거나 수집합니다. 데이터 소스를 생성할 때 이를 사용합니다. 자세한 내용은 SharePoint 데이터 소스 연결을 참조하세요.
| 값 | 에서 생성됨 | 사용 대상 |
|---|---|---|
| 애플리케이션(클라이언트) ID | 1단계 | 보안 암호(clientId). |
| 디렉터리(테넌트) ID | 1단계 | 데이터 소스 입니다tenantId. |
인증서 - PKCS#12 번들(.p12) 및 해당 암호 |
3단계 | 번들(인증서 및 프라이빗 키)은 Amazon S3(6단계)에 업로드되고 암호는 보안 암호()에 저장됩니다certificatePassword. |
인증서 - 퍼블릭 인증서(.cer) |
3단계 | Entra 앱 등록에 업로드된 동일한 인증서의 퍼블릭 절반(4단계). |
| Amazon S3 버킷 이름 및 키 | 단계 6 | 데이터 소스 입니다certificateS3Path. |
| 보안 암호 ARN | 단계 7 | 데이터 소스 입니다secretArn. |
1단계: Microsoft Entra ID에 애플리케이션 등록
-
Microsoft Entra 관리 센터
에 로그인합니다. -
왼쪽 탐색 창에서 Entra ID를 확장하고 앱 등록을 선택합니다.
-
새 등록을 선택합니다.
-
이름에와 같이 설명이 포함된 이름을 입력합니다
bedrock-sharepoint-connector. -
지원되는 계정 유형에서이 조직 디렉터리의 계정만 선택합니다(단일 테넌트).
-
리디렉션 URI는 비워 둡니다. 애플리케이션이 대화형 로그인 흐름이 아닌 클라이언트 자격 증명 흐름을 사용하기 때문에 리디렉션 URI는 필요하지 않습니다.
-
등록을 선택합니다.
-
애플리케이션 개요 페이지에서 애플리케이션(클라이언트) ID와 디렉터리(테넌트) ID를 기록합니다. 나중에 둘 다 필요합니다.
2단계: API 권한 추가 및 관리자 동의 부여
에서 구성에 대한 권한을 추가합니다권한 참조.
-
앱 등록에서 API 권한을 선택한 다음 권한 추가를 선택합니다.
-
Microsoft Graph를 선택한 다음 애플리케이션 권한을 선택합니다. 구성에 대한 각 Microsoft Graph 권한을 검색하고 선택한 다음 권한 추가를 선택합니다.
-
권한 추가를 다시 선택합니다. SharePoint(Microsoft APIs 선택한 다음 애플리케이션 권한을 선택합니다. 구성에 대한 각 SharePoint 권한을 선택한 다음 권한 추가를 선택합니다.
-
API 권한 페이지에서 [조직]에 대한 관리자 동의 부여를 선택하고 확인합니다. 관리자의 동의 없이는 애플리케이션이 SharePoint 데이터에 액세스할 수 없습니다.
참고
Microsoft Entra ID 앱 전용 인증은 인증서(3단계)를 자격 증명으로 사용하므로이 애플리케이션에 대한 클라이언트 보안 암호를 생성하지 않습니다.
3단계: 인증 인증서 생성
자체 서명된 인증서를 생성하고 PKCS#12(.p12) 번들로 패키징합니다. 번들에는 암호로 보호되는 인증서와 프라이빗 키가 모두 포함되어 있습니다. 퍼블릭 인증서를 Entra(4단계)에 업로드하고 .p12 번들을 Amazon S3(6단계)에 업로드합니다. 운영 체제의 탭을 선택하여 명령을 확인합니다.
참고
Amazon Bedrock은 .p12 번들에서 프라이빗 키를 읽고 인증 어설션에 서명하므로 번들은 암호로 보호되고 안전하게 저장되어야 합니다. 강력하고 무작위적인 암호를 선택합니다. 7단계와 같이 보안 암호certificatePassword에 저장합니다.
중요
.p12 번들을 Amazon S3에 저장합니다( .pem 또는 .cer 파일이 아님). 번들에는 Amazon Bedrock이 인증에 사용하는 프라이빗 키가 포함되어 있습니다. 문서 수준 액세스 제어(ACLs)에는 .p12 형식이 필요합니다. ACLs이 없는 콘텐츠 전용 크롤링의 경우 PEM 인코딩 인증서를 대신 저장할 수 있습니다.는 모든 구성에 대해 .p12 작동하므로이 가이드에서는 .p12 전체적으로를 사용합니다.
참고
인증서는 기본적으로 1년 동안 유효합니다. 만료된 인증서는 모든 동기화를 실패시키므로 만료되기 전에 인증서를 교체합니다. 유효 기간을 변경하려면 -days 옵션(OpenSSL) 또는 -NotAfter 인수(PowerShell)를 조정합니다. 교체 단계는 단원을 참조하십시오인증서 교체.
4단계: Entra에 퍼블릭 인증서 업로드
-
앱 등록에서 인증서 및 보안 암호를 선택한 다음 인증서 탭을 선택합니다.
-
인증서 업로드를 선택하고 3단계에서 생성한
certificate.cer파일(퍼블릭 인증서만 해당 -.p12번들 또는 프라이빗 키를 Entra에 업로드하지 않음)을 선택합니다. -
추가를 선택합니다.
5단계(Sites.Selected만 해당): 사이트별 액세스 권한 부여
참고
이 단계는 2단계에서 Sites.Selected 권한 범위를 선택한 경우에만 적용됩니다. 전체 사이트 범위(Sites.Read.All 또는 Sites.FullControl.All)를 사용한 경우 로 건너뜁니다6단계: Amazon S3에 인증서 업로드.
를 사용하면 Microsoft Graph API를 통해 커넥터 애플리케이션에 각 SharePoint 사이트에 대한 액세스 권한을 개별적으로 Sites.Selected부여합니다. 이를 위해서는 Sites.FullControl.All 권한을 보유하며 권한 부여를 수행하는 데만 사용되는 별도의 임시 애플리케이션이 필요합니다. Amazon Bedrock은이 임시 애플리케이션 또는 자격 증명을 볼 수 없습니다.
-
임시 권한 부여자 애플리케이션을 생성합니다. Entra 관리자 센터에서 두 번째 애플리케이션(예:
bedrock-sharepoint-granter)을 리디렉션 URI가 없는 단일 테넌트로 등록합니다. Microsoft GraphSites.FullControl.All애플리케이션 권한을 추가하고, 관리자 동의를 부여하고, 클라이언트 암호를 생성합니다. 클라이언트 ID와 보안 암호 값을 기록합니다. -
권한 부여자 애플리케이션에 대한 액세스 토큰을 가져옵니다. 자리 표시자를 권한 부여자 애플리케이션의 클라이언트 ID 및 보안 암호와 테넌트 ID로 바꿉니다.
curl -s -X POST \ "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=GRANTER_CLIENT_ID" \ -d "client_secret=GRANTER_CLIENT_SECRET" \ -d "scope=https://graph.microsoft.com/.default"응답에는가 포함됩니다
access_token. 다음 명령에서 보유자 토큰으로 사용합니다. -
각 사이트 URL을 사이트 ID로 확인합니다. 사이트의 호스트 이름과 서버 상대 경로를 사용합니다.
curl -s \ "https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/engineering" \ -H "Authorization: BearerACCESS_TOKEN"응답의
id필드는 사이트 ID입니다. -
커넥터 애플리케이션에 사이트에 대한 액세스 권한을 부여합니다. 콘텐츠 전용
read크롤링 또는 ACL 크롤링fullcontrol에 사용합니다.CONNECTOR_CLIENT_ID를 1단계의 애플리케이션(클라이언트) ID로 바꿉니다.curl -s -X POST \ "https://graph.microsoft.com/v1.0/sites/SITE_ID/permissions" \ -H "Authorization: BearerACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "roles": ["fullcontrol"], "grantedToIdentities": [{ "application": { "id": "CONNECTOR_CLIENT_ID", "displayName": "bedrock-sharepoint-connector" } }] }' -
데이터 소스에 포함하는 모든 사이트에 대해 resolve-and-grant 명령을 반복합니다. 완료되면 임시 권한 부여자 애플리케이션을 삭제할 수 있습니다. 사이트별 권한 부여는 계속 유효합니다.
중요
사이트별 권한 부여는 소급 적용되지 않습니다. 나중에 데이터 소스에 사이트를 추가하는 경우 다음 동기화 전에 커넥터 애플리케이션에 해당 사이트에 대한 액세스 권한을 부여합니다. 그렇지 않으면 콘텐츠가 크롤링되지 않습니다.
6단계: Amazon S3에 인증서 업로드
3단계에서 지식 기반과 동일한 AWS 리전의 Amazon S3 버킷으로 .p12 번들을 업로드합니다. 버킷 이름과 키를 기록합니다. 이를 데이터 소스 로 사용합니다certificateS3Path.
aws s3api put-object \ --bucketyour-certificate-bucket\ --keycerts/certificate.p12\ --body certificate.p12 \ --server-side-encryption AES256
참고
인증서 객체에서 서버 측 암호화를 활성화하고 버킷을 필요한 보안 주체로 제한하는 것이 좋습니다. 번들에는 프라이빗 키가 포함되어 있습니다.
7단계: Secrets Manager 보안 암호 생성
보안 인증 정보를 AWS Secrets Manager 보안 암호에 저장합니다. Entra ID 앱 전용 인증의 경우 다음 키-값 페어를 포함합니다.
clientId(필수) - 1단계의 애플리케이션(클라이언트) ID입니다.certificatePassword(권장) - 3단계에서.p12번들에 설정한 암호입니다. 다음 참고 사항을 참조하세요.
{ "clientId": "your-client-id", "certificatePassword": "your-certificate-password" }
AWS Command Line Interface다음을 사용하여 보안 암호를 생성합니다.
aws secretsmanager create-secret \ --namebedrock-sharepoint-creds\ --secret-string file://secret.json
응답의 보안 암호 ARN을 기록합니다. 이를 데이터 소스 로 사용합니다secretArn.
참고
3단계에서 .p12 번들을 생성할 때 사용한 암호certificatePassword로를 설정합니다. 이 필드를 생략하면 Amazon Bedrock은 애플리케이션의 클라이언트 ID를 암호로 사용하여 번들을 엽니다. 따라서 번들은 클라이언트 ID를 암호로 사용하여 생성되어야 합니다. 항상 명시적이고 엔트로피가 높은 암호를 설정하고 프라이빗 키를 안전하게 저장하는 것이 좋습니다.
참고
대신 PEM 인증서를 사용합니다. 이 가이드에서는 모든 구성에 사용할 수 있는 .p12 번들을 사용합니다. 콘텐츠만 크롤링하는 경우(문서 수준 액세스 제어 없음) PEM 인증서를 대신 사용할 수 있습니다. 이 경우 Amazon S3(.p12번들 아님)에 퍼블릭 인증서만 업로드하고 프라이빗 키를 대신 privateKey (암호화되지 않은 base64로 인코딩된 PKCS#8, 헤더 줄 없음)로 보안 암호에 저장합니다certificatePassword.
{ "clientId": "your-client-id", "privateKey": "your-base64-pkcs8-private-key" }
8단계: 서비스 역할에 인증서에 대한 액세스 권한 부여
지식 기반 서비스 역할은 Amazon S3에서 인증서 객체를 읽을 수 있어야 합니다. 다음 문을 역할의 권한 정책에 추가하여 버킷 이름과 키를 값으로 바꿉니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListCertificateBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::your-certificate-bucket"], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } }, { "Sid": "S3GetCertificate", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12", "arn:aws:s3:::your-certificate-bucket/certs/certificate.p12.metadata.json" ], "Condition": { "StringEquals": { "aws:ResourceAccount": ["123456789012"] } } } ] }
참고
또한이 정책은 인증서와 함께 선택적 .metadata.json 파일에 대한 읽기 액세스를 허용합니다. Amazon Bedrock에는이 파일이 필요하지 않습니다. 권한을 포함하면 파일이 있는 경우 액세스 오류가 방지됩니다.
인증서 객체가 AWS KMS 키로 암호화된 경우
의 업로드 명령은 추가 권한이 필요하지 않은 Amazon S3-managed 암호화(AES256)를 6단계: Amazon S3에 인증서 업로드 사용합니다. 대신 고객 관리형 KMS 키(SSE-KMS)를 사용하여 Amazon S3 서버 측 암호화로 인증서 객체를 암호화하는 경우 서비스 역할에는 해당 키에 대한 kms:Decrypt 권한도 필요하며 키의 정책은 역할이 이를 사용하도록 허용해야 합니다. AWS 관리형 aws/s3 키로 암호화된 객체에는이 추가 권한이 필요하지 않습니다.
{ "Sid": "KmsDecryptCertificate", "Effect": "Allow", "Action": ["kms:Decrypt"], "Resource": ["arn:aws:kms:us-west-2:123456789012:key/your-key-id"] }
읽기 액세스에는 만 필요합니다kms:Decrypt. 자세한 내용은 AWS KMS 키로 서버 측 암호화 사용(SSE-KMS)을 참조하세요.
지식 기반 서비스 역할 권한의 전체 세트는 섹션을 참조하세요데이터 소스에 액세스할 수 있는 권한.
다음 단계
이제 보안 암호 ARN, 테넌트 ID, 인증서의 Amazon S3 위치 등 데이터 소스를 생성하는 데 필요한 모든 것이 준비되었습니다. AWS Management Console 또는 API를 사용하여 SharePoint 데이터 소스를 생성하려면 섹션을 참조하세요SharePoint 데이터 소스 연결.
중요
ENTRA_ID_APP_ONLY 인증을 위해 ACLs이 비활성화된 경우에도 데이터 소스를 생성할 certificateS3Path 때를 제공해야 합니다. 이 인증 유형으로 생성된 SharePoint 데이터 소스이며 인증서가 실패하지 않습니다.