Systems Manager 인벤토리에 대한 리소스 데이터 동기화를 생성할 때 Amazon S3에서 발생하는 “S3 write failed for bucket” 403 액세스 거부 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

리소스 데이터 동기화를 생성할 때 Amazon Simple Storage Service(S3)에서 발생하는 403 액세스 거부 오류를 해결하고 싶습니다.

해결 방법

AWS Systems Manager 인벤토리에 대한 리소스 데이터 동기화를 구성하는는 방법에는 두 가지가 있습니다.

  • 동일한 조직 내의 여러 계정에 대한 리소스 데이터 동기화를 생성합니다.
  • 동일한 조직에 속하지 않은 여러 계정에 대한 리소스 데이터 동기화를 생성합니다.

S3 write failed for bucket오류를 해결하려면 다음을 수행하세요.

동일한 조직 내의 여러 계정에 대한 문제 해결

중앙 Amazon S3 버킷 정책에 여러 AWS 계정이 버킷에 인벤토리 데이터를 보낼 수 있도록 허용하는 데 필요한 권한이 있는지 확인합니다.

동일한 조직 내의 여러 계정에 대한 리소스 데이터 동기화를 생성하려면 CreateResourceDataSync API를 사용하고 DestinationDataSharing 파라미터를 지정해야 합니다. AWS CloudTrail에서 이벤트 이름 CreateResourceDataSync에 대한 API 요청을 확인하여 DestinationDataSharing 파라미터가 이벤트에 포함되어 있는지 확인할 수 있습니다.

참고: 리소스 데이터 동기화가 동일한 조직 내의 여러 계정에 대한 리소스 데이터 동기화인 경우 AWS 관리 콘솔에서 리소스 데이터 동기화를 생성할 수 없습니다.

다음은 CreateResourceDataSync에 대한 AWS Command Line Interface(AWS CLI) 명령의 예입니다.

aws ssm create-resource-data-sync --sync-name name --s3-destination "BucketName=DOC-EXAMPLE-BUCKET,Prefix=prefix-name,SyncFormat=JsonSerDe,Region=AWS Region ID,DestinationDataSharing={DestinationDataSharingType=Organization}"

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

동일한 조직 내에 있지 않은 여러 계정에 대한 문제 해결

리소스 데이터 동기화를 만들려면 대상 S3 버킷의 S3 버킷 정책이 소스 계정에서 필요한 작업을 허용하는지 확인합니다.

예를 들어 계정 A계정 B계정 C의 S3 버킷으로 인벤토리 데이터를 전송한다고 가정해 보겠습니다.

계정 C의 S3 버킷 정책은 다음 예제 정책과 유사합니다.

{           
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "SSMBucketPermissionsCheck",  
            "Effect": "Allow",  
            "Principal": {  
                 "Service": "ssm.amazonaws.com"    
            },  
            "Action": "s3:GetBucketAcl",  
            "Resource": "arn:aws:s3:::S3_bucket_name"  
         },  
         {  
             "Sid": " SSMBucketDelivery",  
             "Effect": "Allow",  
             "Principal": {  
                 "Service": "ssm.amazonaws.com"  
             },  
             "Action": "s3:PutObject",  
             "Resource": [  
                 "arn:aws:s3:::S3_bucket_name/*/accountid=AWS_AccountA_ID/*",  
                 "arn:aws:s3:::S3_bucket_name/*/accountid=AWS_AccountB_ID/*"  
           ],  
           "Condition": {  
               "StringEquals": {  
                   "aws:SourceAccount": [  
                       "AWS_AccountA_ID",  
                       "AWS_AccountB_ID"  
                    ],  
                    "s3:x-amz-acl": "bucket-owner-full-control"  
                },  
                "ArnLike": {  
                   "aws:SourceArn": [  
                        "arn:aws:ssm:*:AWS_AccountA_ID:resource-data-sync/*",  
                        "arn:aws:ssm:*:AWS_AccountB_ID:resource-data-sync/*"  
                   ]  
                }  
           }  
        }  
   ]  
}  

참고: 리소스 데이터 동기화를 암호화하려면 AWS Key Management Service(AWS KMS) 키 정책 및 S3 버킷 정책을 업데이트해야 합니다. 자세한 내용은 둘러보기를 참조하세요. 리소스 데이터 동기화를 사용하여 인벤토리 데이터를 집계합니다.

AWS 공식
AWS 공식업데이트됨 10달 전
댓글 없음