

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

# 계정 간 오프라인 저장소 액세스
<a name="feature-store-cross-account-access-offline-store"></a>

 Amazon SageMaker 특성 프로세서를 사용하면 사용자가 한 계정(A 계정)에서 특성 그룹을 생성하고 다른 계정(B 계정)의 Amazon S3 버킷을 사용하여 오프라인 저장소에 특성 그룹을 구성할 수 있습니다. 다음 섹션의 단계를 사용하여 이를 설정할 수 있습니다.

**Topics**
+ [1단계: A 계정에서 오프라인 저장소 액세스 역할 설정](#feature-store-setup-step1)
+ [2단계: B 계정에서 오프라인 저장소 Amazon S3 버킷을 설정합니다.](#feature-store-setup-step2)
+ [3단계: 계정 A에서 오프라인 저장소 AWS KMS 암호화 키 설정](#feature-store-setup-step3)
+ [4단계: A 계정에 특성 그룹 생성](#feature-store-setup-step4)

## 1단계: A 계정에서 오프라인 저장소 액세스 역할 설정
<a name="feature-store-setup-step1"></a>

먼저 Amazon SageMaker 특성 저장소의 역할을 설정하여 오프라인 저장소에 데이터를 기록합니다. 이 작업을 수행하는 가장 간단한 방법은 `AmazonSageMakerFeatureStoreAccess`정책을 사용하여 새 역할을 생성하거나 `AmazonSageMakerFeatureStoreAccess`정책이 이미 연결된 기존 역할을 사용하는 것입니다. 이 문서에서는 이 정책을 `Account-A-Offline-Feature-Store-Role-ARN`으로 참조합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetBucketAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        }
    ]
}
```

------

위의 코드 스니펫은 `AmazonSageMakerFeatureStoreAccess`정책을 보여줍니다. 이 정책의 `Resource`섹션 범위는 기본적으로 `SageMaker`, `Sagemaker`또는 `sagemaker`를 포함하는 이름을 가진 S3 버킷으로 제한됩니다. 즉, 사용 중인 오프라인 저장소 Amazon S3 버킷은 이 명명 규칙을 따라야 합니다. 이 경우가 아니거나 리소스의 범위를 더 좁히려면 정책을 콘솔의 Amazon S3 버킷 정책에 복사하여 붙여넣고 `Resource`섹션을 `arn:aws:s3:::your-offline-store-bucket-name`으로 사용자 지정한 다음 역할에 연결할 수 있습니다.

또한이 역할에는 AWS KMS 권한이 연결되어 있어야 합니다. 최소한 고객 관리형 키를 사용하여 오프라인 저장소에 글을 쓸 수 있도록 `kms:GenerateDataKey`권한이 필요합니다. 계정 간 시나리오에서 고객 관리형 키가 필요한 이유와 설정 방법에 대해 알아보려면 3단계를 참조하세요. 다음 정책은 인라인 정책을 보여줍니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:*:111122223333:key/*"
        }
    ]
}
```

------

이 정책의 `Resource`섹션은 A 계정의 모든 키로 범위가 지정됩니다.범위를 더 좁히려면 3단계에서 오프라인 저장소 KMS 키를 설정한 후 이 정책으로 돌아가 키 ARN으로 바꾸세요.

## 2단계: B 계정에서 오프라인 저장소 Amazon S3 버킷을 설정합니다.
<a name="feature-store-setup-step2"></a>

B 계정에 Amazon S3 버킷을 생성합니다. 기본 `AmazonSageMakerFeatureStoreAccess`정책을 사용하는 경우 버킷 이름에 `SageMaker`, `Sagemaker`또는 `sagemaker`가 포함되어야 합니다. 다음 예와 같이 버킷 정책을 편집하여 A 계정이 객체를 읽고 쓸 수 있도록 허용합니다.

이 문서에서는 다음 예제 버킷 정책을 `Account-B-Offline-Feature-Store-Bucket`으로 참조합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3CrossAccountBucketAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetBucketAcl"
            ],
            "Principal": {
                "AWS": [
                    "Account-A-Offline-Feature-Store-Role-ARN"
                ]
            },
            "Resource": [
                "arn:aws:s3:::offline-store-bucket-name/*",
                "arn:aws:s3:::offline-store-bucket-name"
            ]
        }
    ]
}
```

------

위 정책에서 보안 주체는 `Account-A-Offline-Feature-Store-Role-ARN`이며, 1단계에서 A 계정에 생성되어 오프라인 저장소에 쓰기 권한으로 Amazon SageMake 특성 저장소에 제공되는 역할입니다. `Principal`에서 여러 ARN 역할을 제공할 수 있습니다.

## 3단계: 계정 A에서 오프라인 저장소 AWS KMS 암호화 키 설정
<a name="feature-store-setup-step3"></a>

Amazon SageMaker 특성 저장소는 오프라인 저장소의 Amazon S3 객체에 대해 서버 측 암호화가 항상 활성화되도록 합니다. 계정 간 사용 사례의 경우, 오프라인 저장소에 쓸 수 있는 사용자(이 경우 A 계정의 `Account-A-Offline-Feature-Store-Role-ARN`)와 오프라인 저장소에서 읽을 수 있는 사용자(이 경우 B 계정의 ID)를 제어할 수 있도록 고객 관리형 키를 제공해야 합니다.

이 문서에서는 다음 예제 키 정책을 `Account-A-Offline-Feature-Store-KMS-Key-ARN`으로 참조합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-consolepolicy-3",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                "arn:aws:iam::111122223333:role/Administrator"
                ]
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow Feature Store to get information about the customer managed key",
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": [
                "kms:Describe*",
                "kms:Get*",
                "kms:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "Account-A-Offline-Feature-Store-Role-ARN",
                    "arn:aws:iam::444455556666:root"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:CreateGrant",
                "kms:RetireGrant",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey",
                "kms:ListAliases",
                "kms:ListGrants"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 4단계: A 계정에 특성 그룹 생성
<a name="feature-store-setup-step4"></a>

다음으로, B 계정에 오프라인 저장소 Amazon S3 버킷을 사용하여 A 계정에 특성 그룹을 생성합니다.이렇게 하려면 `RoleArn`, `OfflineStoreConfig.S3StorageConfig.KmsKeyId`, `OfflineStoreConfig.S3StorageConfig.S3Uri`에 대해 각각 다음 파라미터를 제공합니다.
+ `Account-A-Offline-Feature-Store-Role-ARN`을 `RoleArn`으로 제공합니다.
+ `Account-A-Offline-Feature-Store-KMS-Key-ARN`을 `OfflineStoreConfig.S3StorageConfig.KmsKeyId`에 제공합니다.
+ `Account-B-Offline-Feature-Store-Bucket`을 `OfflineStoreConfig.S3StorageConfig.S3Uri`에 제공합니다.