기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
멀티턴 강화 학습을 위한 저장 데이터 암호화
미사용 중 암호화 옵션
Amazon SageMaker AI의 멀티턴 강화 학습 작업은 저장된 모든 데이터를 암호화합니다. Amazon S3에 저장된 훈련 입력 데이터, 출력 데이터(모델 체크포인트 및 훈련된 모델 아티팩트 포함) 및 중간 데이터는 서버 측 암호화를 사용하여 암호화됩니다. 저장 시 데이터가 암호화되도록 추가 구성을 수행할 필요가 없습니다.
Amazon SageMaker AI는 멀티턴 RL 작업에 대해 다음과 같은 암호화 옵션을 지원합니다.
-
AWS 소유 KMS 키를 사용한 서버 측 암호화 - 기본적으로 Amazon SageMaker AI는 AWS 소유 KMS 키를 사용하여 모든 훈련 출력 및 중간 데이터를 암호화합니다. 추가 구성은 필요하지 않습니다.
-
AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS) - 선택적으로 고객 관리형 KMS 키를 지정하여 Amazon S3에서 훈련 출력 데이터를 암호화할 수 있습니다. Amazon S3의 입력 데이터가 고객 관리형 키로 이미 암호화된 경우 실행 역할에 해당 데이터를 복호화할 수 있는 권한이 있어야 합니다.
고객 관리형 AWS KMS 키를 사용하여 저장 데이터 암호화
멀티턴 RL이 고객 관리형 KMS 키를 사용하는 방법
멀티턴 RL 작업의 출력 구성에서 고객 관리형 KMS 키를 지정하면 Amazon SageMaker AI는 해당 키를 사용하여 Amazon S3에서 다음 리소스를 암호화합니다.
-
훈련된 모델 아티팩트를 포함한 훈련 출력 데이터(LoRA 어댑터 가중치)
-
중간 모델 입력/출력(재개 가능한 모델 체크포인트 및 궤적 데이터)
-
MLflow 실험 데이터 및 추적
고객 관리형 KMS 키를 지정하면 Amazon SageMaker AI는 두 가지 메커니즘을 사용하여 데이터를 암호화합니다.
-
권한 부여 - 작업 생성 시 Amazon SageMaker AI는 호출자의 자격 증명을 사용하여 KMS 키에 대해 하나 또는 두 개의 권한 부여를 생성합니다.
-
쓰기 권한 부여 - 고객 관리형 키를 지정하는 모든 작업에 대해 생성됩니다. 서비스가 훈련 중에 현재 작업의 체크포인트와 플랫폼 내에 저장된 임시 데이터를 암호화하고 해독할 수 있도록 허용합니다.
-
읽기 권한 부여 - 이전 작업에서도 고객 관리형 키를 사용했을 때 이전 작업의 체크포인트에서 재개되는 반복 작업에 대해서만 생성됩니다. 서비스가 이전 작업의 체크포인트 데이터를 해독하도록 허용합니다. 이 권한 부여는 복호화만 허용하고 새 데이터 쓰기는 허용하지 않습니다.
모든 권한 부여는 작업이 완료되면 자동으로 사용 중지되므로 작업 수명 주기가 종료된 후 서비스가 더 이상 키에 액세스할 수 없습니다.
-
-
실행 역할 - 출력 데이터(모델 아티팩트, 체크포인트)를 Amazon S3 버킷에 저장할 때 Amazon SageMaker AI는 사용자가 제공하는 실행 역할을 사용합니다. 실행 역할에는 Amazon S3를 통한 암호화 및 복호화에 KMS 키를 사용할 수 있는 권한이 있어야 합니다.
훈련 작업 중에 다음 AWS KMS 작업이 발생합니다.
-
kms:GenerateDataKey- 암호화된 출력 데이터(모델 아티팩트, 체크포인트 및 로그)를 쓸 때 Amazon S3를 통해 호출됩니다. -
kms:Decrypt- 암호화된 입력 데이터 또는 이전에 작성된 출력 데이터를 읽을 때 Amazon S3를 통해 호출됩니다. -
kms:DescribeKey- KMS 키 구성 및 상태를 확인하기 위해 작업 생성 시 호출자 자격 증명에서 호출합니다. -
kms:CreateGrant- 작업 생성 시 호출자 자격 증명이 호출하여 서비스에 작업 수명 주기 동안 플랫폼 내에 임시 데이터를 저장할 수 있는 권한을 부여합니다.
서비스는 데이터 키를 캐싱하지 않습니다. 각 Amazon S3 읽기 또는 쓰기 작업은 Amazon S3 서비스 통합을 통해 AWS KMS 독립적으로 호출됩니다.
고객 관리형 KMS 키 구성
다중 회전 RL 작업은 대칭 AWS KMS 키만 지원합니다. 다중 리전 키는 지원되지 않습니다.
고객 관리형 KMS 키를 사용하도록 권한 구성
고객 관리형 KMS 키를 멀티턴 RL 작업과 함께 사용하려면 IAM 실행 역할과 KMS 키 정책 모두에 대한 권한을 구성해야 합니다.
실행 역할 권한
CreateJob API에 전달하는 IAM 실행 역할에는 다음과 같은 AWS KMS 권한이 있어야 합니다. 이러한 권한을 통해 훈련 작업은 Amazon S3를 통해 출력 데이터를 암호화하고 입력 데이터를 복호화할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForS3Encryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } } ] }
-
kms:Decrypt- Amazon S3에서 암호화된 입력 데이터와 이전에 작성된 출력 데이터를 읽는 데 필요합니다. -
kms:GenerateDataKey- Amazon S3에 기록된 출력 데이터(모델 아티팩트, 체크포인트)를 암호화하는 데 필요합니다.
이 kms:ViaService 조건은 키 사용을 Amazon S3를 통해 들어오는 요청으로 제한하여 키가 다른 용도로 사용되지 않도록 합니다.
에이전트 런타임 역할 권한
Amazon Bedrock AgentCore 에이전트 또는 AWS Lambda 전달자가 수임하는 에이전트 런타임 역할에는 다음 AWS KMS 권한이 있어야 합니다. SageMaker AI는 멀티턴 강화 학습(RL) 작업 중에 KMS 키를 사용하기 전에 호출자에게 이러한 권한이 있는지 확인합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForMTRLRuntime", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" } } } ] }
에이전트 런타임 역할의 kms:ViaService 조건은 SageMaker AI 런타임 서비스가 호출자를 대신하여 AWS KMS 작업을 수행하기 sagemaker.*.amazonaws.com 때문에를 지정합니다. 반면 실행 역할은 Amazon S3를 통해 키에 액세스하기 s3.*.amazonaws.com 때문에를 사용합니다.
KMS 키 정책
기본 KMS 키 정책은 이미 동일한 계정의 IAM 역할이 키를 사용하도록 허용합니다. 선택적으로 다음 문을 추가하여 실행 역할 및 에이전트 런타임 역할로만 액세스를 추가로 제한할 수 있습니다.
{ "Sid": "AllowMTRLJobEncryption", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/SageMakerExecutionRole", "arn:aws:iam::account-id:role/AgentRuntimeRole" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "s3.*.amazonaws.com", "sagemaker.*.amazonaws.com" ] } } }
호출자가 권한 부여를 생성하고 키를 설명하도록 허용하려면 키 정책에 다음 문을 추가합니다.
{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "account-id" }, "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
고객 관리형 KMS 키를 사용하여 멀티턴 RL 작업 생성
고객 관리형 KMS 키로 출력 데이터를 암호화하려면 CreateJob 요청에서의 KmsKeyArn 필드에 키 ARNOutputDataConfig을 지정합니다. 자세한 내용은 SageMaker AI API 참조의 CreateJob을 참조하세요. SageMaker
다음 예제에서는에서 KMS 키를 지정하는 방법을 보여줍니다. OutputDataConfig
{ "OutputDataConfig": { "S3OutputPath": "s3://your-bucket/output/", "KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }
Amazon S3의 입력 데이터가 고객 관리형 키(SSE-KMS)로 암호화된 경우 실행 역할에 해당 키에 대한 kms:Decrypt 권한이 있는지 확인합니다. 입력 및 출력 암호화 모두에 동일한 키를 사용하거나 다른 키를 사용할 수 있습니다.
고객 관리형 KMS 키에 대한 액세스 범위 축소
다음 메커니즘을 사용하여 고객 관리형 KMS 키에 대한 액세스를 제한할 수 있습니다.
- sagemaker:OutputKmsKeyArn 조건 키
-
호출자의 IAM 정책에서
sagemaker:OutputKmsKeyArn조건 키를 사용하여 작업 출력 암호화에 지정할 수 있는 KMS 키를 제어합니다. 이를 통해 관리자는 멀티턴 RL 작업을 생성할 때 승인된 키만 사용하도록 적용할 수 있습니다. SageMaker AI 조건 키의 전체 목록은 Amazon SageMaker AI에 사용되는 작업, 리소스 및 조건 키를 참조하세요."Condition": { "ArnEquals": { "sagemaker:OutputKmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } } - 혼동된 대리자 보호
-
혼동된 대리자 문제를 방지하려면 KMS 키 정책에서
aws:SourceArn또는aws:SourceAccount조건 키를 사용합니다. 이렇게 하면 특정 계정 또는 리소스에서 시작된 요청만 키를 사용할 수 있습니다."Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:region:account-id:job/*" } }
멀티턴 RL 작업에 대한 암호화 컨텍스트
멀티턴 RL 작업이 고객 관리형 KMS 키를 사용하여 데이터를 암호화하는 경우 Amazon SageMaker AI는 Amazon S3를 통해 이루어진 모든 AWS KMS 요청에 암호화 컨텍스트를 포함합니다. 암호화 컨텍스트는 AWS KMS 작업에 대한 추가 인증 데이터(AAD)를 제공하는 키-값 페어 세트입니다. 암호화 컨텍스트는 로그인 AWS CloudTrail 되어 KMS 키 정책에서 사용할 수 있으며 액세스를 추가로 제한하는 제약 조건을 부여할 수 있습니다.
Amazon SageMaker AI는 멀티턴 RL 훈련 작업에 다음과 같은 암호화 컨텍스트 키-값 페어를 사용합니다.
{ "aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/job-name" }
멀티턴 RL 평가 작업의 경우 암호화 컨텍스트는 다음을 사용합니다.
{ "aws:sagemaker:agent-rft-evaluation-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFTEvaluation/job-name" }
암호화 컨텍스트는 암호화된 데이터를 생성하는 특정 작업에 바인딩됩니다. 각 작업은 암호화 컨텍스트에서 자체 ARN으로 자체 출력을 암호화합니다. 이렇게 하면 암호화된 데이터와 데이터를 생성한 작업 간에 암호화 바인딩이 제공됩니다.
키 정책에서 암호화 컨텍스트 사용
암호화 컨텍스트는 Amazon SageMaker AI가 작업 생성 시 생성하는 권한 부여 제약을 통해 자동으로 적용됩니다. 암호화가 올바르게 작동하려면 KMS 키 정책에 암호화 컨텍스트 조건을 추가할 필요가 없습니다.
KMS 키 정책의 kms:CreateGrant 문에 암호화 컨텍스트 조건을 추가하는 경우 반복 훈련 체인에서 현재 작업과 이전 작업 모두에 대한 권한 부여를 허용해야 합니다. 다음 예시에서는 Amazon SageMaker AI가 암호화 컨텍스트에서 훈련 작업 ARN으로 권한 부여를 생성할 수 있도록 허용합니다.
{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com", "kms:EncryptionContext:aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/*" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
참고
암호화 컨텍스트에서 단일 특정 작업 ARNkms:CreateGrant으로 제한하면 Amazon SageMaker AI도 이전 작업의 ARN을 암호화 컨텍스트로 사용하여 읽기 권한 부여를 생성하기 때문에 반복 훈련이 실패합니다. 와일드카드 패턴을 사용하여 계정의 모든 작업에 대한 권한 부여를 허용합니다.
반복 훈련의 암호화 컨텍스트
반복 훈련 작업(이전 작업의 체크포인트에서 후속 작업이 재개되는 경우)을 실행하면 각 작업에 대한 암호화 컨텍스트에 해당 작업의 자체 ARN이 포함됩니다. Amazon SageMaker AI는 반복 훈련을 지원하기 위해 두 가지 AWS KMS 권한 부여를 자동으로 관리합니다.
-
쓰기 권한 부여 - 현재 작업이 현재 작업의 ARN을 암호화 컨텍스트로 사용하여 자체 체크포인트 데이터를 암호화할 수 있도록 허용합니다.
-
읽기 권한 부여 - 현재 작업이 이전 작업의 ARN을 암호화 컨텍스트로 사용하여 이전 작업에서 체크포인트 데이터를 복호화할 수 있습니다.
두 권한 부여 모두 작업이 완료되면 자동으로 사용 중지됩니다. 반복 훈련에서 고객 관리형 키로 작업하기 위해 추가 키 정책 설명을 추가할 필요가 없습니다.
의 암호화 컨텍스트 AWS CloudTrail
다중 턴 RL 작업에서 수행된 AWS KMS API 호출에 대한 CloudTrail 로그를 검토하면 로그 항목의 requestParameters 필드에 암호화 컨텍스트가 나타납니다. 이 정보를 사용하여 데이터에 대해 특정 암호화 또는 복호화 작업을 수행한 작업을 확인할 수 있습니다.
와의 멀티턴 RL 상호 작용 모니터링 AWS KMS
AWS CloudTrail 를 사용하여 멀티턴 RL 작업을 대신하여 이루어진 AWS KMS API 호출을 모니터링할 수 있습니다. 다음 CloudTrail 이벤트 이름은 KMS 키 사용 모니터링과 관련이 있습니다.
-
Decrypt- 작업이 Amazon S3에서 암호화된 데이터를 읽을 때 로깅됩니다. -
GenerateDataKey- 작업이 암호화된 데이터를 Amazon S3에 쓸 때 로깅됩니다. -
CreateGrant- 호출자가 작업 생성 시 권한 부여를 생성할 때 로깅됩니다. -
DescribeKey- 작업이 검증을 위한 KMS 키를 설명할 때 로깅됩니다.
이러한 이벤트에 대한 CloudTrail 로그 항목에서 다음 값을 찾습니다.
-
requestParameters.granteePrincipal –
CreateGrant이벤트의 경우 권한 부여()를 받은 서비스 보안 주체를 표시합니다job.sagemaker.amazonaws.com.
AWS KMS API 호출 로깅에 대한 자세한 내용은 AWS KMS 개발자 안내서의 를 사용하여 AWS KMS API 호출 로깅 AWS CloudTrail을 참조하세요.