Я выполнил следующие задачи между двумя своими учетными записями (Dev и Prod) и не могу скопировать данные из S3 в Redshift в моей учетной записи Prod.
Задание 1:
Задание 2:
Теперь я хотел переместить эти данные S3 (которые скопированы из Dev) в
Redshift, я выполнил следующую команду, используя Redshift Query
Редактор.
Команда:
COPY table1(wre,sdf,sfd,sd,fs,df,sdfs,dfsdf,sd,fs,dfsdf,sdf,qwer,wer,wer)
FROM 's3://mydata/csv'
IAM_ROLE 'arn:aws:iam::myrole'
DELIMITER '|' IGNOREHEADER 1 TIMEFORMAT 'auto' REMOVEQUOTES NULL AS 'NULL'
EMPTYASNULL TRIMBLANKS ROUNDEC;
Но я столкнулся со следующей ошибкой:
[Amazon](500310) Invalid operation: S3ServiceException:Access Denied,Status 403,
Error AccessDenied,Rid 70FE39F0982E9706,ExtRid Pxs9xdm+Plb2fvgySsuVq0UWLV2UCwMJ+qrGe0jazom346t4szXILbHma5SX1ZrIq4kPJA8q5Ws=,
CanRetry 1 Details: -----------------------------------------------
error: S3ServiceException:Access Denied,Status 403,Error AccessDenied,
Rid 70FE39F0982E9706,ExtRid Pxs9xdm+Plb2fvgySsuVq0UWLV2UCwMJ+qrGe0jazom346t4szXILbHma5SX1ZrIq4kPJA8q5Ws=,
CanRetry 1 code: 8001 context: S3 key being read :
Я думал, что поскольку данные зашифрованы, я столкнулся с этой проблемой. Поэтому, чтобы преодолеть это, я попытался разрешить кросс-аккаунт доступ к KMS.
Задание 3:
Я просмотрел этот документ и следовал процедуре. Вот шаги для того же самого и политики, которую я создал.
- Я создал политику IAM (описанную ниже) в производственной учетной записи
- Приложил эту политику к моей роли (которая используется в заявлении о копировании выше) для копии Redshift в производственной учетной записи
Политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowUseOfCMKInAccount444455556666",
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "arn:aws:kms:us-east-2:XXXXXXXXXX:key/9821114k-mfdfki-7e8e"
},
{
"Sid": "AllowUseofCMKToCreateEncryptedResourcesInAccount444455556666",
"Effect": "Allow",
"Action": "kms:CreateGrant",
"Resource": "arn:aws:kms:us-east-2:XXXXXXXXXX:key/9821114k-mfdfki-7e8e",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
}
}
}
]
}
Где XXXXXXXXXX
- номер учетной записи разработчика, а arn - ключ учетной записи разработчика.
Какие еще изменения мне нужно будет сделать, чтобы запустить и перенести мои данные в Redshift.
Было бы здорово, если бы кто-то помог мне понять и фоновое поведение.
ПРИМЕЧАНИЕ. Я использую управляемый ключ клиента в учетной записи разработчика в KMS.